2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.taxeditor
.ui
.openurl
;
13 import java
.util
.List
;
15 import org
.eclipse
.jface
.wizard
.Wizard
;
16 import org
.eclipse
.swt
.widgets
.Display
;
18 import eu
.etaxonomy
.cdm
.ext
.openurl
.MobotOpenUrlQuery
;
19 import eu
.etaxonomy
.cdm
.ext
.openurl
.MobotOpenUrlServiceWrapper
;
20 import eu
.etaxonomy
.cdm
.ext
.openurl
.MobotOpenUrlServiceWrapper
.ReferenceType
;
21 import eu
.etaxonomy
.cdm
.ext
.openurl
.OpenUrlReference
;
22 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
23 import eu
.etaxonomy
.taxeditor
.preference
.IPreferenceKeys
;
24 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
25 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
29 * @created Jan 31, 2011
32 public class OpenUrlSelectorWizard
extends Wizard
{
34 private final MobotOpenUrlServiceWrapper openUrlServiceWrapper
;
36 private final MobotOpenUrlQuery query
;
38 private OpenUrlReference openUrlReference
;
40 private final CdmFormFactory formFactory
;
42 private URI openUrlReferenceImageUri
;
44 private final Reference reference
;
46 private final String referenceDetail
;
51 * @param openUrlSelectorElement
54 public OpenUrlSelectorWizard(Reference reference
, String referenceDetail
) {
55 if(reference
== null){
56 throw new IllegalArgumentException("Reference may not be empty");
59 this.reference
= reference
;
60 this.referenceDetail
= referenceDetail
;
62 setWindowTitle("Mobot Open Url");
63 setNeedsProgressMonitor(true);
65 formFactory
= new CdmFormFactory(Display
.getDefault());
67 openUrlServiceWrapper
= new MobotOpenUrlServiceWrapper();
68 openUrlServiceWrapper
.setBaseUrl(PreferencesUtil
.getStringValue(IPreferenceKeys
.OPENURL_ACCESS_POINT
));
70 query
= new MobotOpenUrlQuery();
72 query
.refType
= ReferenceType
.getReferenceType(reference
);
73 if(reference
.getAuthorship() != null){
74 query
.authorName
= reference
.getAuthorship().getTitleCache();
76 query
.abbreviation
= reference
.getTitle();
77 if(reference
.getInReference() != null){
78 query
.journalTitle
= reference
.getInReference().getTitle();
80 query
.ISBN
= reference
.getIsbn();
81 query
.ISSN
= reference
.getIssn();
82 if(reference
.getDatePublished() != null){
83 query
.publicationDate
= reference
.getDatePublished().toString();
85 query
.publicationPlace
= reference
.getPlacePublished();
86 query
.publisherName
= reference
.getPublisher();
87 query
.volume
= reference
.getVolume();
89 query
.startPage
= referenceDetail
;
93 * @see org.eclipse.jface.wizard.Wizard#addPages()
96 public void addPages() {
98 addPage(new OpenUrlResultPage());
99 addPage(new OpenUrlReferencePage());
105 * @see org.eclipse.jface.wizard.Wizard#performFinish()
108 public boolean performFinish() {
113 * @param openUrlReference the openUrlReference to set
115 public void setOpenUrlReference(OpenUrlReference openUrlReference
) {
116 this.openUrlReference
= openUrlReference
;
117 this.openUrlReferenceImageUri
= openUrlReference
.getJpegImage(PreferencesUtil
.getIntValue(IPreferenceKeys
.OPENURL_IMAGE_MAX_WIDTH
)
118 , PreferencesUtil
.getIntValue(IPreferenceKeys
.OPENURL_IMAGE_MAX_HEIGHT
));
122 * @return the openUrlReference
124 public OpenUrlReference
getOpenUrlReference() {
125 return openUrlReference
;
131 public List
<OpenUrlReference
> getResult() {
132 return openUrlServiceWrapper
.doResolve(query
);
136 * @return the formFactory
138 public CdmFormFactory
getFormFactory() {
143 * @return the openUrlServiceWrapper
145 public MobotOpenUrlServiceWrapper
getOpenUrlServiceWrapper() {
146 return openUrlServiceWrapper
;
152 public URI
getOpenUrlReferenceImageUri() {
153 return openUrlReferenceImageUri
;
156 public Reference
getReference() {
160 public String
getReferenceDetail() {
161 return referenceDetail
;