From 5d1f3b51cdac9d403abd9b984a8c4879810b7021 Mon Sep 17 00:00:00 2001
From: "n.hoffmann"
Date: Fri, 4 Feb 2011 16:06:06 +0000
Subject: [PATCH] Implemented MobotOpenUrl UI
---
.gitattributes | 8 +
taxeditor-cdmlib/META-INF/MANIFEST.MF | 1 +
.../editor/name/TaxonNameEditor.java | 1 -
.../taxeditor/forms/CdmFormFactory.java | 17 ++
.../taxeditor/forms/ImageElement.java | 137 +++++++------
.../forms/openurl/IOpenUrlEnabled.java | 36 ++++
.../forms/openurl/OpenUrlContentProvider.java | 58 ++++++
.../forms/openurl/OpenUrlLabelProvider.java | 24 +++
.../forms/openurl/OpenUrlReferencePage.java | 183 ++++++++++++++++++
.../forms/openurl/OpenUrlResultPage.java | 113 +++++++++++
.../forms/openurl/OpenUrlSelectorElement.java | 110 +++++++++++
.../forms/openurl/OpenUrlSelectorWizard.java | 143 ++++++++++++++
.../section/name/ProtologueElement.java | 48 ++++-
.../reference/ReferenceDetailElement.java | 3 +-
.../supplemental/ImageFileElement.java | 7 +
taxeditor-store/plugin.xml | 6 +
.../taxeditor/model/AbstractUtility.java | 9 +-
.../taxeditor/preference/IPreferenceKeys.java | 6 +
.../preference/MobotOpenUrlPreferences.java | 133 +++++++++++++
.../taxeditor/preference/PreferencesUtil.java | 3 +
.../TaxonomicEditorGeneralPreferences.java | 5 +-
21 files changed, 986 insertions(+), 65 deletions(-)
create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/IOpenUrlEnabled.java
create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlContentProvider.java
create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlLabelProvider.java
create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlReferencePage.java
create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlResultPage.java
create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlSelectorElement.java
create mode 100644 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlSelectorWizard.java
create mode 100644 taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/MobotOpenUrlPreferences.java
diff --git a/.gitattributes b/.gitattributes
index 587665351..895763d8e 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -532,6 +532,13 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TextWithLabelElement
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/TimePeriodElement.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ToggleableTextElement.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/UriWithLabelElement.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/IOpenUrlEnabled.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlContentProvider.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlLabelProvider.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlReferencePage.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlResultPage.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlSelectorElement.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlSelectorWizard.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/AbstractSelectionElement.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/AgentSelectionElement.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/selection/ClassificationSelectionElement.java -text
@@ -1100,6 +1107,7 @@ taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/InitNomenclaturalCodePrefDialog.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguagePreferencePage.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/MatchingPreferences.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/MobotOpenUrlPreferences.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/NomenclaturalCodePreferences.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencePropertyTester.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java -text
diff --git a/taxeditor-cdmlib/META-INF/MANIFEST.MF b/taxeditor-cdmlib/META-INF/MANIFEST.MF
index 37f39ca85..2e1989ad9 100644
--- a/taxeditor-cdmlib/META-INF/MANIFEST.MF
+++ b/taxeditor-cdmlib/META-INF/MANIFEST.MF
@@ -226,6 +226,7 @@ Export-Package: com.google.api,
eu.etaxonomy.cdm.ext.dc,
eu.etaxonomy.cdm.ext.geo,
eu.etaxonomy.cdm.ext.ipni,
+ eu.etaxonomy.cdm.ext.openurl,
eu.etaxonomy.cdm.ext.sru,
eu.etaxonomy.cdm.hibernate;uses:="org.hibernate.search.bridge",
eu.etaxonomy.cdm.io.berlinModel;
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
index cc5f95fbd..1ff1238a4 100644
--- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
+++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
@@ -20,7 +20,6 @@ import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.StructuredSelection;
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/CdmFormFactory.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/CdmFormFactory.java
index 5d76b0d0c..b638ea58c 100644
--- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/CdmFormFactory.java
+++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/CdmFormFactory.java
@@ -121,6 +121,8 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.forms.openurl.IOpenUrlEnabled;
+import eu.etaxonomy.taxeditor.forms.openurl.OpenUrlSelectorElement;
import eu.etaxonomy.taxeditor.forms.selection.AbstractSelectionElement;
import eu.etaxonomy.taxeditor.forms.selection.AgentSelectionElement;
import eu.etaxonomy.taxeditor.forms.selection.ClassificationSelectionElement;
@@ -633,6 +635,21 @@ public class CdmFormFactory extends FormToolkit{
return element;
}
+ /**
+ * @param element
+ * @param string
+ * @param uri
+ * @param style
+ * @return
+ */
+ public OpenUrlSelectorElement createOpenUrlSelectorElement(
+ ICdmFormElement parentElement, String labelString, IOpenUrlEnabled openUrlEnabled, int style) {
+ OpenUrlSelectorElement element = new OpenUrlSelectorElement(this, parentElement, labelString, openUrlEnabled, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
/**
* createIntegerTextWithLabelElement
*
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ImageElement.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ImageElement.java
index 5806912a2..9db80d123 100644
--- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ImageElement.java
+++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ImageElement.java
@@ -17,14 +17,15 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
+import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
import org.eclipse.ui.forms.widgets.TableWrapData;
import eu.etaxonomy.cdm.common.UriUtils;
@@ -37,7 +38,7 @@ import eu.etaxonomy.taxeditor.editor.EditorUtil;
* @created Sep 24, 2010
* @version 1.0
*/
-public class ImageElement extends AbstractCdmFormElement implements PaintListener, ControlListener{
+public class ImageElement extends AbstractCdmFormElement implements PaintListener{
private URI imageUri;
private Image image;
@@ -57,11 +58,11 @@ public class ImageElement extends AbstractCdmFormElement implements PaintListene
super(formFactory, parentElement);
setImageUri(imageUri);
+ loadImage();
container = new Composite(getLayoutComposite(), style);
container.setLayoutData(CdmFormFactory.FILL(2, 1));
- container.addControlListener(this);
container.addPaintListener(this);
}
@@ -83,36 +84,84 @@ public class ImageElement extends AbstractCdmFormElement implements PaintListene
*/
public void setImageUri(URI uri) {
this.imageUri = uri;
-
- if(imageUri != null){
-
- final Display display = Display.getCurrent();
- Job job = new Job("Loading image: " + imageUri){
+ }
+
+
+ /**
+ * Getter for the field imageUri
.
+ *
+ * @return the imageUri
+ */
+ public URI getImageUri() {
+ return imageUri;
+ }
+
+ public void loadImage(){
+ loadImage(null);
+ }
+
+ public void loadImage(final Runnable postRunnable){
+ if(getImageUri() != null){
+ Job job = new Job("Loading image") {
+
@Override
protected IStatus run(IProgressMonitor monitor) {
- try {
- InputStream imageStream = UriUtils.getInputStream(imageUri);
-
- image = new Image(Display.getCurrent(), imageStream);
-
- display.asyncExec(new Runnable(){
- @Override
- public void run() {
- EditorUtil.reflowDetailsViewer();
-// getLayoutComposite().layout();
- }
- });
- return Status.OK_STATUS;
- }catch (Exception e) {
- EditorUtil.errorDialog("Could not load image", getClass(), e.getMessage(), e);
- }
- return Status.CANCEL_STATUS;
- }
+ IRunnableWithProgress runnable = getLoadImageRunnable(postRunnable);
+ try {
+ runnable.run(monitor);
+ } catch (Exception e) {
+ EditorUtil.errorDialog("Could not load image", getClass(), e.getMessage() + ": " + getImageUri(), e);
+ }
+
+ return Status.OK_STATUS;
+ }
};
-
job.schedule();
}
}
+
+ public IRunnableWithProgress getLoadImageRunnable(final Runnable postRunnable){
+
+ final Display display = getLayoutComposite().getDisplay();
+
+ IRunnableWithProgress runnable = new IRunnableWithProgress(){
+
+ @Override
+ public void run(IProgressMonitor monitor) {
+ try {
+ monitor.beginTask("Loading: " + getImageUri(), IProgressMonitor.UNKNOWN);
+ InputStream imageStream = UriUtils.getInputStream(imageUri);
+
+ image = new Image(Display.getCurrent(), imageStream);
+
+ // redraw the image container
+ display.asyncExec(new Runnable(){
+ @Override
+ public void run() {
+ if(! getLayoutComposite().isDisposed()){
+ Event untypedEvent = new Event();
+ untypedEvent.widget = container;
+ PaintEvent event = new PaintEvent(untypedEvent);
+ event.gc = new GC(container);
+ paintControl(event);
+ getLayoutComposite().layout();
+ }
+ }
+ });
+
+ // execute the external runnable
+ if(postRunnable != null){
+ display.asyncExec(postRunnable);
+ }
+ monitor.done();
+ }catch (Exception e) {
+ EditorUtil.errorDialog("Could not load image", getClass(), e.getMessage() + ": " + imageUri , e);
+ }
+ }
+ };
+
+ return runnable;
+ }
private void calculateImageBounds(){
Rectangle imageBounds = image.getBounds();
@@ -127,15 +176,7 @@ public class ImageElement extends AbstractCdmFormElement implements PaintListene
imageMaxBounds = new Rectangle(containerBounds.x, containerBounds.y, width, height.intValue());
}
-
- /**
- * Getter for the field imageUri
.
- *
- * @return the imageUri
- */
- public URI getImageUri() {
- return imageUri;
- }
+
/* (non-Javadoc)
* @see org.eclipse.swt.events.PaintListener#paintControl(org.eclipse.swt.events.PaintEvent)
@@ -150,27 +191,7 @@ public class ImageElement extends AbstractCdmFormElement implements PaintListene
layoutData.heightHint = imageMaxBounds.height;
composite.setLayoutData(layoutData);
e.gc.drawImage(image, 0, 0, image.getBounds().width, image.getBounds().height, 0, 0, imageMaxBounds.width, imageMaxBounds.height);
+ e.gc.dispose();
}
}
-
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.events.ControlListener#controlMoved(org.eclipse.swt.events.ControlEvent)
- */
- /** {@inheritDoc} */
- @Override
- public void controlMoved(ControlEvent e) {
- // TODO Auto-generated method stub
-
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.events.ControlListener#controlResized(org.eclipse.swt.events.ControlEvent)
- */
- /** {@inheritDoc} */
- @Override
- public void controlResized(ControlEvent e) {
- EditorUtil.reflowDetailsViewer();
- }
}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/IOpenUrlEnabled.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/IOpenUrlEnabled.java
new file mode 100644
index 000000000..2a219e17c
--- /dev/null
+++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/IOpenUrlEnabled.java
@@ -0,0 +1,36 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.openurl;
+
+import java.net.URI;
+
+import eu.etaxonomy.cdm.model.reference.Reference;
+
+/**
+ * @author n.hoffmann
+ * @created Feb 3, 2011
+ * @version 1.0
+ */
+public interface IOpenUrlEnabled {
+
+ public void setOpenUrl(URI uri);
+
+ /**
+ * @return
+ */
+ public Reference getReference();
+
+ /**
+ * @return
+ */
+ public String getDetail();
+
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlContentProvider.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlContentProvider.java
new file mode 100644
index 000000000..46c99cf80
--- /dev/null
+++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlContentProvider.java
@@ -0,0 +1,58 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.openurl;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+import eu.etaxonomy.cdm.ext.openurl.OpenUrlReference;
+
+/**
+ * @author n.hoffmann
+ * @created Jan 31, 2011
+ * @version 1.0
+ */
+public class OpenUrlContentProvider implements IStructuredContentProvider {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+ */
+ @Override
+ public void dispose() {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+ */
+ @Override
+ public Object[] getElements(Object inputElement) {
+ if(inputElement instanceof List){
+ return ((List) inputElement).toArray();
+ }
+
+
+ return new Object[]{};
+ }
+
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlLabelProvider.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlLabelProvider.java
new file mode 100644
index 000000000..af539e66a
--- /dev/null
+++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlLabelProvider.java
@@ -0,0 +1,24 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.openurl;
+
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+
+/**
+ * @author n.hoffmann
+ * @created Jan 31, 2011
+ * @version 1.0
+ */
+public class OpenUrlLabelProvider extends LabelProvider implements
+ IBaseLabelProvider {
+
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlReferencePage.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlReferencePage.java
new file mode 100644
index 000000000..9b1bd8e1a
--- /dev/null
+++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlReferencePage.java
@@ -0,0 +1,183 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.openurl;
+
+import java.net.URI;
+import java.util.List;
+
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+
+import eu.etaxonomy.cdm.ext.openurl.OpenUrlReference;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.ImageElement;
+import eu.etaxonomy.taxeditor.forms.RootElement;
+
+/**
+ * @author n.hoffmann
+ * @created Jan 31, 2011
+ * @version 1.0
+ */
+public class OpenUrlReferencePage extends WizardPage implements SelectionListener {
+
+ public static final String NAME = "OpenUrlReferencePage";
+
+ private static final int NEXT = 1;
+ private static final int PREVIOUS = -1;
+
+ private ImageElement imageElement;
+ private RootElement rootElement;
+ private ScrolledForm scrolledForm;
+ private Button button_next;
+ private Button button_previous;
+
+ private OpenUrlReference reference;
+
+ private Composite container;
+
+ private Label label_pageNumber;
+
+ /**
+ * @param pageName
+ */
+ protected OpenUrlReferencePage() {
+ super(NAME);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ public void createControl(Composite parent) {
+ container = getWizard().getFormFactory().createComposite(parent, SWT.NULL);
+
+ container.setLayout(new GridLayout());
+ container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ scrolledForm = getWizard().getFormFactory().createScrolledForm(container);
+ scrolledForm.getBody().setLayout(CdmFormFactory.LAYOUT(3, false));
+ scrolledForm.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true));
+
+ Composite buttonContainer = getWizard().getFormFactory().createComposite(container);
+ buttonContainer.setLayout(new GridLayout(3, true));
+ buttonContainer.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, true, false));
+
+ button_previous = getWizard().getFormFactory().createButton(buttonContainer, "Previous", SWT.PUSH);
+ button_previous.addSelectionListener(this);
+ button_previous.setLayoutData(new GridData(SWT.LEFT, SWT.BOTTOM, true, false));
+
+ label_pageNumber = getWizard().getFormFactory().createLabel(buttonContainer, " ");
+
+ button_next = getWizard().getFormFactory().createButton(buttonContainer, "Next", SWT.PUSH);
+ button_next.addSelectionListener(this);
+ button_next.setLayoutData(new GridData(SWT.RIGHT, SWT.BOTTOM, true, false));
+
+ scrolledForm.getBody().setLayoutData(CdmFormFactory.FILL());
+
+ rootElement = new RootElement(getWizard().getFormFactory(), scrolledForm.getBody());
+
+ imageElement = getWizard().getFormFactory().createImageElement(rootElement, null, SWT.BORDER);
+
+ setControl(container);
+ }
+
+ public OpenUrlSelectorWizard getWizard(){
+ return (OpenUrlSelectorWizard) super.getWizard();
+ }
+
+ /**
+ * @param jpegImage
+ */
+ public void displayImage() {
+ URI imageUri = getWizard().getOpenUrlReferenceImageUri();
+ imageElement.setImageUri(imageUri);
+
+ IRunnableWithProgress runnable = imageElement.getLoadImageRunnable(new Runnable(){
+ /* (non-Javadoc)
+ * @see java.lang.Runnable#run()
+ */
+ @Override
+ public void run() {
+ container.layout();
+
+ configurePageBar();
+ }
+ });
+
+ try {
+ getWizard().getContainer().run(true, false, runnable);
+ } catch (Exception e) {
+ EditorUtil.errorDialog("Could not load image", getClass(), e.getMessage() + ": " + imageUri , e);
+ }
+ }
+
+ /**
+ *
+ */
+ private void configurePageBar() {
+ setTitle(getWizard().getOpenUrlReference().getTitleCache());
+ String pageNumber = getWizard().getOpenUrlReference().getPages();
+ label_pageNumber.setText(pageNumber);
+ button_previous.setEnabled(canPage(PREVIOUS));
+ button_next.setEnabled(canPage(NEXT));
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ if(e.getSource() == button_next){
+ pageResult(NEXT);
+ }else{
+ pageResult(PREVIOUS);
+ }
+ }
+
+ private void pageResult(int direction){
+ try {
+ List referenceList = getWizard().getOpenUrlServiceWrapper().doPage(getWizard().getOpenUrlReference(), direction);
+ OpenUrlReference openUrlReference = referenceList.iterator().next();
+ getWizard().setOpenUrlReference(openUrlReference);
+ displayImage();
+ setErrorMessage(null);
+ } catch (IllegalArgumentException e) {
+ setErrorMessage(String.format("Could not page: %s", e.getLocalizedMessage()));
+ } catch (Exception e) {
+ EditorUtil.error(getClass(), e);
+ }
+ }
+
+ private boolean canPage(int direction){
+ try{
+ getWizard().getOpenUrlServiceWrapper().doPage(getWizard().getOpenUrlReference(), direction);
+ }catch (IllegalArgumentException e) {
+ return false;
+ }
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {}
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlResultPage.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlResultPage.java
new file mode 100644
index 000000000..25b393648
--- /dev/null
+++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlResultPage.java
@@ -0,0 +1,113 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.openurl;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.ext.openurl.OpenUrlReference;
+
+
+/**
+ * @author n.hoffmann
+ * @created Jan 31, 2011
+ * @version 1.0
+ */
+public class OpenUrlResultPage extends WizardPage {
+
+ public static final String NAME = "OpenUrlResultPage";
+
+ private TableViewer viewer;
+
+ /**
+ * @param pageName
+ */
+ protected OpenUrlResultPage() {
+ super(NAME);
+ setTitle("Choose from results");
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ public void createControl(Composite parent) {
+ setPageComplete(false);
+
+ Composite container = getWizard().getFormFactory().createComposite(parent);
+
+ container.setLayout(new GridLayout());
+ container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ viewer = new TableViewer(container);
+ viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ viewer.setContentProvider(new OpenUrlContentProvider());
+ viewer.setLabelProvider(new OpenUrlLabelProvider());
+
+ List results = getWizard().getResult();
+
+ if(results == null || results.isEmpty()){
+ setMessage("No results for the given reference", WizardPage.WARNING);
+ }
+ viewer.setInput(results);
+
+ viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+
+ OpenUrlReference reference = (OpenUrlReference) selection.getFirstElement();
+
+ getWizard().setOpenUrlReference(reference);
+
+
+ ((OpenUrlReferencePage) getNextPage()).displayImage();
+
+ setPageComplete(true);
+ }
+ });
+
+ setControl(container);
+
+ }
+
+ public OpenUrlSelectorWizard getWizard(){
+ return (OpenUrlSelectorWizard) super.getWizard();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.WizardPage#canFlipToNextPage()
+ */
+ @Override
+ public boolean canFlipToNextPage() {
+ return super.canFlipToNextPage();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.WizardPage#isPageComplete()
+ */
+ @Override
+ public boolean isPageComplete() {
+ return super.isPageComplete();
+ }
+
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlSelectorElement.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlSelectorElement.java
new file mode 100644
index 000000000..946e92dfb
--- /dev/null
+++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlSelectorElement.java
@@ -0,0 +1,110 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.openurl;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
+
+/**
+ * @author n.hoffmann
+ * @created Jan 31, 2011
+ * @version 1.0
+ */
+public class OpenUrlSelectorElement extends AbstractCdmFormElement implements SelectionListener{
+
+ private Button button;
+
+ private Reference reference;
+
+ private String referenceDetail;
+
+ private IOpenUrlEnabled openUrlEnabled;
+
+ /**
+ * @param formFactory
+ * @param parentElement
+ * @param labelString
+ * @param initialUri
+ * @param textHeight
+ * @param style
+ */
+ public OpenUrlSelectorElement(CdmFormFactory formFactory,
+ ICdmFormElement parentElement, String labelString, IOpenUrlEnabled openUrlEnabled, int style) {
+ super(formFactory, parentElement);
+ this.openUrlEnabled = openUrlEnabled;
+ button = formFactory.createButton(getLayoutComposite(), "Browse", SWT.PUSH);
+ addControl(button);
+ button.addSelectionListener(this);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ OpenUrlSelectorWizard wizard = new OpenUrlSelectorWizard(openUrlEnabled.getReference(), openUrlEnabled.getDetail());
+
+ WizardDialog dialog = new WizardDialog(EditorUtil.getShell(), wizard);
+
+ if(dialog.open() == IStatus.OK){
+ openUrlEnabled.setOpenUrl(wizard.getOpenUrlReferenceImageUri());
+ }
+ }
+
+ /**
+ * @return
+ */
+ private String getDetail() {
+ return referenceDetail;
+ }
+
+ public void setDetail(String referenceDetail){
+ this.referenceDetail = referenceDetail;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {}
+
+ /**
+ * @param reference the reference to set
+ */
+ public void setReference(Reference reference) {
+ this.reference = reference;
+ }
+
+ /**
+ * @return the reference
+ */
+ public Reference getReference() {
+ return reference;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.ISelectable#setSelected(boolean)
+ */
+ @Override
+ public void setSelected(boolean selected) {
+ // pass
+ }
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlSelectorWizard.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlSelectorWizard.java
new file mode 100644
index 000000000..ca1822acb
--- /dev/null
+++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/openurl/OpenUrlSelectorWizard.java
@@ -0,0 +1,143 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.forms.openurl;
+
+import java.net.URI;
+import java.util.List;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.swt.widgets.Display;
+
+import eu.etaxonomy.cdm.ext.openurl.MobotOpenUrlQuery;
+import eu.etaxonomy.cdm.ext.openurl.MobotOpenUrlServiceWrapper;
+import eu.etaxonomy.cdm.ext.openurl.MobotOpenUrlServiceWrapper.ReferenceType;
+import eu.etaxonomy.cdm.ext.openurl.OpenUrlReference;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author n.hoffmann
+ * @created Jan 31, 2011
+ * @version 1.0
+ */
+public class OpenUrlSelectorWizard extends Wizard {
+
+ private MobotOpenUrlServiceWrapper openUrlServiceWrapper;
+
+ private MobotOpenUrlQuery query;
+
+ private OpenUrlReference openUrlReference;
+
+ private CdmFormFactory formFactory;
+
+ private URI openUrlReferenceImageUri;
+
+
+
+ /**
+ * @param openUrlSelectorElement
+ * @param reference
+ */
+ public OpenUrlSelectorWizard(Reference reference, String referenceDetail) {
+ setWindowTitle("Mobot Open Url");
+ setNeedsProgressMonitor(true);
+
+ formFactory = new CdmFormFactory(Display.getDefault());
+
+ openUrlServiceWrapper = new MobotOpenUrlServiceWrapper();
+ openUrlServiceWrapper.setBaseUrl(PreferencesUtil.getPreferenceStore().getString(IPreferenceKeys.OPENURL_ACCESS_POINT));
+
+ query = new MobotOpenUrlQuery();
+
+ query.refType = ReferenceType.getReferenceType(reference);
+ query.authorName = reference.getAuthorTeam().getTitleCache();
+ query.bookTitle = reference.getTitle();
+ if(reference.getInReference() != null){
+ query.journalTitle = reference.getInReference().getTitle();
+ }
+ query.ISBN = reference.getIsbn();
+ query.ISSN = reference.getIssn();
+ if(reference.getDatePublished() != null){
+ query.publicationDate = reference.getDatePublished().toString();
+ }
+ query.publicationPlace = reference.getPlacePublished();
+ query.publisherName = reference.getPublisher();
+ query.volume = reference.getVolume();
+
+ query.startPage = referenceDetail;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.Wizard#addPages()
+ */
+ @Override
+ public void addPages() {
+
+ addPage(new OpenUrlResultPage());
+ addPage(new OpenUrlReferencePage());
+
+ super.addPages();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.Wizard#performFinish()
+ */
+ @Override
+ public boolean performFinish() {
+ return true;
+ }
+
+ /**
+ * @param openUrlReference the openUrlReference to set
+ */
+ public void setOpenUrlReference(OpenUrlReference openUrlReference) {
+ this.openUrlReference = openUrlReference;
+ this.openUrlReferenceImageUri = openUrlReference.getJpegImage(PreferencesUtil.getPreferenceStore().getInt(IPreferenceKeys.OPENURL_IMAGE_MAX_WIDTH)
+ , PreferencesUtil.getPreferenceStore().getInt(IPreferenceKeys.OPENURL_IMAGE_MAX_HEIGHT));
+ }
+
+ /**
+ * @return the openUrlReference
+ */
+ public OpenUrlReference getOpenUrlReference() {
+ return openUrlReference;
+ }
+
+ /**
+ * @return
+ */
+ public List getResult() {
+ return openUrlServiceWrapper.doResolve(query);
+ }
+
+ /**
+ * @return the formFactory
+ */
+ public CdmFormFactory getFormFactory() {
+ return formFactory;
+ }
+
+ /**
+ * @return the openUrlServiceWrapper
+ */
+ public MobotOpenUrlServiceWrapper getOpenUrlServiceWrapper() {
+ return openUrlServiceWrapper;
+ }
+
+ /**
+ * @return
+ */
+ public URI getOpenUrlReferenceImageUri() {
+ return openUrlReferenceImageUri;
+ }
+}
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/name/ProtologueElement.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/name/ProtologueElement.java
index 8be83cb87..852419b24 100644
--- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/name/ProtologueElement.java
+++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/name/ProtologueElement.java
@@ -16,16 +16,22 @@ import java.net.URISyntaxException;
import org.eclipse.swt.events.SelectionListener;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
import eu.etaxonomy.cdm.model.media.Media;
import eu.etaxonomy.cdm.model.media.MediaRepresentation;
import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.forms.AbstractFormSection;
import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.CdmPropertyChangeEvent;
import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
import eu.etaxonomy.taxeditor.forms.ISelectableElement;
import eu.etaxonomy.taxeditor.forms.SelectionArbitrator;
import eu.etaxonomy.taxeditor.forms.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.forms.openurl.IOpenUrlEnabled;
+import eu.etaxonomy.taxeditor.forms.openurl.OpenUrlSelectorElement;
import eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement;
/**
@@ -35,7 +41,7 @@ import eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement;
* @created Nov 5, 2009
* @version 1.0
*/
-public class ProtologueElement extends AbstractEntityCollectionElement implements ISelectableElement{
+public class ProtologueElement extends AbstractEntityCollectionElement implements ISelectableElement, IOpenUrlEnabled{
private SelectionArbitrator selectionArbitrator;
@@ -44,6 +50,8 @@ public class ProtologueElement extends AbstractEntityCollectionElementConstructor for ProtologueElement.
*
@@ -66,6 +74,8 @@ public class ProtologueElement extends AbstractEntityCollectionElement
private AbstractSelectionElement selection_inReference;
private AbstractSelectionElement selection_institution;
private ReferenceTypeComboElement combo_referenceType;
-
+
private ReferenceSelectionElement selection_inSeries;
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/supplemental/ImageFileElement.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/supplemental/ImageFileElement.java
index 93f50e376..59454fcb8 100644
--- a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/supplemental/ImageFileElement.java
+++ b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/section/supplemental/ImageFileElement.java
@@ -116,6 +116,13 @@ public class ImageFileElement extends AbstractMediaRepresentationPartElement
+
+
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java
index aa66420a0..b2cfe084a 100644
--- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java
+++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java
@@ -300,7 +300,14 @@ public abstract class AbstractUtility {
* @param status a {@link org.eclipse.core.runtime.IStatus} object.
*/
public static void errorDialog(final String title, final Object source, final IStatus status){
-
+ Display.getDefault().asyncExec(new Runnable(){
+
+ public void run() {
+ MessageDialog.openError(getShell(), title, status.getMessage());
+ Class extends Object> clazz = source != null ? source.getClass() : this.getClass();
+ error(clazz, status.getMessage(), status.getException());
+ }
+ });
}
/**
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java
index 925084e76..f9e5e0917 100644
--- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java
+++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java
@@ -99,4 +99,10 @@ public interface IPreferenceKeys {
public static final String GLOBAL_LANGUAGE_UUID = "eu.etaxonomy.taxeditor.globalLanguage";
public static final String SHOW_EXPERIMENTAL_FEATURES = "eu.etaxonomy.taxeditor.showExperimentalFeatures";
+
+ public static final String OPENURL_ACCESS_POINT = "eu.etaxonomy.taxeditor.openUrlAccessPoint";
+
+ public static final String OPENURL_IMAGE_MAX_WIDTH = "eu.etaxonomy.taxeditor.openUrlImageMaxWidth";
+
+ public static final String OPENURL_IMAGE_MAX_HEIGHT = "eu.etaxonomy.taxeditor.openUrlImageMaxHeight";
}
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/MobotOpenUrlPreferences.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/MobotOpenUrlPreferences.java
new file mode 100644
index 000000000..77b935002
--- /dev/null
+++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/MobotOpenUrlPreferences.java
@@ -0,0 +1,133 @@
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.preference;
+
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * @author n.hoffmann
+ * @created Feb 4, 2011
+ * @version 1.0
+ */
+public class MobotOpenUrlPreferences extends PreferencePage implements
+ IWorkbenchPreferencePage {
+
+
+ private String openUrlServiceAccessPoint;
+ private String openUrlImageMaxWidth;
+ private String openUrlImageMaxHeight;
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+ */
+ @Override
+ public void init(IWorkbench workbench) {
+ setPreferenceStore(PreferencesUtil.getPreferenceStore());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
+ */
+ @Override
+ protected Control createContents(Composite parent) {
+ Composite container = new Composite(parent, SWT.NULL);
+ final GridLayout gridLayout = new GridLayout();
+ container.setLayout(gridLayout);
+
+ creatOpenUrlServiceAccessPoint(container);
+
+ createOpenUrlImageSize(container);
+
+ return container;
+ }
+
+ /**
+ * @param container
+ */
+ private void createOpenUrlImageSize(Composite container) {
+ openUrlImageMaxWidth = getPreferenceStore().getString(IPreferenceKeys.OPENURL_IMAGE_MAX_WIDTH);
+ openUrlImageMaxHeight = getPreferenceStore().getString(IPreferenceKeys.OPENURL_IMAGE_MAX_HEIGHT);
+
+ Composite composite = new Composite(container, SWT.NULL);
+ final GridLayout gridLayout = new GridLayout(2, false);
+ composite.setLayout(gridLayout);
+
+ final CLabel labelWidth = new CLabel(composite, SWT.NULL);
+ labelWidth.setText("Image Maximum Width: ");
+
+ final Text textWidth = new Text(composite, SWT.BORDER);
+ textWidth.setText(openUrlImageMaxWidth);
+ textWidth.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+
+ textWidth.addModifyListener(new ModifyListener() {
+
+ public void modifyText(ModifyEvent e) {
+ openUrlImageMaxWidth = textWidth.getText();
+ }
+ });
+
+ final CLabel labelHeight = new CLabel(composite, SWT.NULL);
+ labelHeight.setText("Image Maximum Height: ");
+
+ final Text textHeight = new Text(composite, SWT.BORDER);
+ textHeight.setText(openUrlImageMaxHeight);
+ textHeight.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+
+ textHeight.addModifyListener(new ModifyListener() {
+
+ public void modifyText(ModifyEvent e) {
+ openUrlImageMaxHeight = textHeight.getText();
+ }
+ });
+ }
+
+ private void creatOpenUrlServiceAccessPoint(Composite composite) {
+ openUrlServiceAccessPoint = getPreferenceStore().getString(IPreferenceKeys.OPENURL_ACCESS_POINT);
+
+ final CLabel label = new CLabel(composite, SWT.NULL);
+ label.setText("Mobot Open Url Service Access Point:");
+
+ final Text text = new Text(composite, SWT.BORDER);
+ text.setText(openUrlServiceAccessPoint);
+ text.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+
+ text.addModifyListener(new ModifyListener() {
+
+ public void modifyText(ModifyEvent e) {
+ openUrlServiceAccessPoint = text.getText();
+ }
+ });
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.preference.PreferencePage#performOk()
+ */
+ @Override
+ public boolean performOk() {
+ getPreferenceStore().setValue(IPreferenceKeys.OPENURL_ACCESS_POINT, openUrlServiceAccessPoint);
+ getPreferenceStore().setValue(IPreferenceKeys.OPENURL_IMAGE_MAX_WIDTH, openUrlImageMaxWidth);
+ getPreferenceStore().setValue(IPreferenceKeys.OPENURL_IMAGE_MAX_HEIGHT, openUrlImageMaxHeight);
+
+ return super.performOk();
+ }
+
+}
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
index 33323b602..310ee58a3 100644
--- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
+++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
@@ -298,6 +298,9 @@ public class PreferencesUtil implements IPreferenceKeys{
getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_SYNONYMS, true);
getPreferenceStore().setDefault(EDIT_MAP_SERVICE_ACCES_POINT, "http://edit.br.fgov.be/edit_wp5/v1/areas.php");
getPreferenceStore().setDefault(SHOULD_CONNECT_AT_STARTUP, true);
+ getPreferenceStore().setDefault(OPENURL_ACCESS_POINT, "http://www.biodiversitylibrary.org/openurl");
+ getPreferenceStore().setDefault(OPENURL_IMAGE_MAX_WIDTH, "1000");
+ getPreferenceStore().setDefault(OPENURL_IMAGE_MAX_HEIGHT, "1000");
}
/**
diff --git a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonomicEditorGeneralPreferences.java b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonomicEditorGeneralPreferences.java
index 78c0f8ad7..c7d11ba64 100644
--- a/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonomicEditorGeneralPreferences.java
+++ b/taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonomicEditorGeneralPreferences.java
@@ -46,6 +46,7 @@ public class TaxonomicEditorGeneralPreferences extends PreferencePage implements
private boolean shouldExpandSectionWhenDataAvailable;
private boolean shouldShowExperimentalFeatures;
+
/* (non-Javadoc)
* @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
@@ -106,6 +107,8 @@ public class TaxonomicEditorGeneralPreferences extends PreferencePage implements
}
});
}
+
+
private void createShowUuidInSupplementalView(Composite parent){
showUuidInSupplementalView = getPreferenceStore().getBoolean(PreferencesUtil.SHOW_DEBUG_INFORMATION);
@@ -206,7 +209,7 @@ public class TaxonomicEditorGeneralPreferences extends PreferencePage implements
getPreferenceStore().setValue(IPreferenceKeys.SHOULD_CONNECT_AT_STARTUP, shouldConnectAtStartup);
getPreferenceStore().setValue(IPreferenceKeys.SHOULD_EXPAND_SECTION_WHEN_DATA_AVAILABLE, shouldExpandSectionWhenDataAvailable);
getPreferenceStore().setValue(IPreferenceKeys.SHOW_EXPERIMENTAL_FEATURES, shouldShowExperimentalFeatures);
-
+
return super.performOk();
}
--
2.34.1