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.
9 package eu
.etaxonomy
.taxeditor
.ui
.openurl
;
11 import java
.util
.List
;
13 import org
.eclipse
.jface
.wizard
.Wizard
;
14 import org
.eclipse
.swt
.widgets
.Display
;
16 import eu
.etaxonomy
.cdm
.common
.URI
;
17 import eu
.etaxonomy
.cdm
.ext
.openurl
.MobotOpenUrlQuery
;
18 import eu
.etaxonomy
.cdm
.ext
.openurl
.MobotOpenUrlServiceWrapper
;
19 import eu
.etaxonomy
.cdm
.ext
.openurl
.MobotOpenUrlServiceWrapper
.ReferenceType
;
20 import eu
.etaxonomy
.cdm
.ext
.openurl
.OpenUrlReference
;
21 import eu
.etaxonomy
.cdm
.model
.metadata
.PreferencePredicate
;
22 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
23 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
24 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
28 * @created Jan 31, 2011
30 public class OpenUrlSelectorWizard
extends Wizard
{
32 private final MobotOpenUrlServiceWrapper openUrlServiceWrapper
;
34 private final MobotOpenUrlQuery query
;
36 private OpenUrlReference openUrlReference
;
38 private final CdmFormFactory formFactory
;
40 private URI openUrlReferenceImageUri
;
42 private final Reference reference
;
44 private final String referenceDetail
;
47 * @param openUrlSelectorElement
50 public OpenUrlSelectorWizard(Reference reference
, String referenceDetail
) {
51 if(reference
== null){
52 throw new IllegalArgumentException("Reference may not be empty");
55 this.reference
= reference
;
56 this.referenceDetail
= referenceDetail
;
58 setWindowTitle("Mobot Open Url");
59 setNeedsProgressMonitor(true);
61 formFactory
= new CdmFormFactory(Display
.getDefault());
63 openUrlServiceWrapper
= new MobotOpenUrlServiceWrapper();
64 openUrlServiceWrapper
.setBaseUrl(PreferencesUtil
.getStringValue(PreferencePredicate
.MobotOpenUrlServiceAccessPoint
.getKey()));
66 query
= new MobotOpenUrlQuery();
68 query
.refType
= ReferenceType
.getReferenceType(reference
);
69 if(reference
.getAuthorship() != null){
70 query
.authorName
= reference
.getAuthorship().getTitleCache();
72 query
.abbreviation
= reference
.getTitle();
73 if(reference
.getInReference() != null){
74 query
.journalTitle
= reference
.getInReference().getTitle();
76 query
.ISBN
= reference
.getIsbn();
77 query
.ISSN
= reference
.getIssn();
78 if(reference
.getDatePublished() != null){
79 query
.publicationDate
= reference
.getDatePublished().toString();
81 query
.publicationPlace
= reference
.getPlacePublished();
82 query
.publisherName
= reference
.getPublisher();
83 query
.volume
= reference
.getVolume();
85 query
.startPage
= referenceDetail
;
89 public void addPages() {
91 addPage(new OpenUrlResultPage());
92 addPage(new OpenUrlReferencePage());
98 public boolean performFinish() {
102 public void setOpenUrlReference(OpenUrlReference openUrlReference
) {
103 this.openUrlReference
= openUrlReference
;
104 this.openUrlReferenceImageUri
= openUrlReference
.getJpegImage(PreferencesUtil
.getIntValue(PreferencePredicate
.MobotOpenUrlServiceMaxWidth
.getKey(), true)
105 , PreferencesUtil
.getIntValue(PreferencePredicate
.MobotOpenUrlServiceMaxHeight
.getKey(), true));
107 public OpenUrlReference
getOpenUrlReference() {
108 return openUrlReference
;
111 public List
<OpenUrlReference
> getResult() {
112 return openUrlServiceWrapper
.doResolve(query
);
115 public CdmFormFactory
getFormFactory() {
119 public MobotOpenUrlServiceWrapper
getOpenUrlServiceWrapper() {
120 return openUrlServiceWrapper
;
123 public URI
getOpenUrlReferenceImageUri() {
124 return openUrlReferenceImageUri
;
127 public Reference
getReference() {
131 public String
getReferenceDetail() {
132 return referenceDetail
;