package eu.etaxonomy.taxeditor.ui.element;
import java.net.URI;
-import java.net.URISyntaxException;
-
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Label;
/**
* @author n.hoffmann
*/
public class UriWithLabelElement extends TextWithLabelElement {
- /**
- * @param formFactory
- * @param parentElement
- * @param labelString
- * @param initialText
- * @param textHeight
- * @param style
- */
+ private final Label labelException;
+
protected UriWithLabelElement(CdmFormFactory formFactory,
ICdmFormElement parentElement, String labelString,
URI initialUri, Integer textHeight, int style) {
super(formFactory, parentElement, labelString, null, textHeight, style);
+
+ labelException = formFactory.createLabel(getLayoutComposite(), "", SWT.WRAP);
+ labelException.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ addControl(labelException);
setUri(initialUri);
}
- /**
- *
- */
public void setUri(URI uri) {
if(uri != null){
super.setText(uri.toString());
}
}
- public URI getUri() throws URISyntaxException{
- if(super.getText()!=null){
- return new URI(super.getText());
- }
- return null;
+ public URI getUri(){
+ try {
+ labelException.setText("");
+ return new URI(super.getText());
+ } catch (Exception e) {
+ labelException.setText(e.getMessage());
+ return null;
+ }
}
}
// $Id$
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* 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.
*/
import eu.etaxonomy.cdm.common.media.ImageInfo;
import eu.etaxonomy.cdm.model.media.ImageFile;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
private NumberWithLabelElement text_width;
private KeyValueViewerElement element_keyValue;
private ImageElement element_image;
-
-
- private Runnable postRunnable = new Runnable(){
- public void run() {
+
+
+ private final Runnable postRunnable = new Runnable(){
+ @Override
+ public void run() {
StoreUtil.reflowDetailsViewer();
StoreUtil.reflowSupplementalViewer();
}
};
-
-
+
+
/**
* <p>Constructor for ImageFileElement.</p>
*
SelectionListener removeListener, int style) {
super(cdmFormFactory, section, element, removeListener, style);
}
-
+
/** {@inheritDoc} */
@Override
public void createControls(ICdmFormElement formElement, int style) {
super.createControls(formElement, style);
-
+
text_height = formFactory.createNumberTextWithLabelElement(formElement, "Height", null, style);
text_height.setEnabled(false);
text_width = formFactory.createNumberTextWithLabelElement(formElement, "Width", null, style);
element_image = formFactory.createImageElement(formElement, null, style);
element_keyValue = formFactory.createKeyValueViewerElement(formElement, "Key", "Value", null);
}
-
+
/** {@inheritDoc} */
@Override
public void setEntity(ImageFile entity) {
text_height.setNumber(entity.getHeight());
text_width.setNumber(entity.getWidth());
try {
- loadImage(entity.getUri(), false);
+ loadImage(entity.getUri(), false);
} catch (Exception e) {
handleException(e);
}
}
-
+
private void loadImage(URI uri, boolean updateDimensions) throws IOException, HttpException{
element_image.initImageUri(uri);
-
+
element_image.loadImage(postRunnable );
-
-
+
+
if(uri == null){
return;
}
-
+
ImageInfo imageInfo = ImageInfo.NewInstanceWithMetaData(uri, 10000);
-
+
element_keyValue.setInput(imageInfo.getMetaData());
-
+
if(updateDimensions){
text_size.setText(FileUtils.byteCountToDisplaySize(imageInfo.getLength()));
- // KLUDGE this is not save for very large files, because of the int cast.
+ // KLUDGE this is not save for very large files, because of the int cast.
// But then, I don't think we will handle such large files in the near future
getEntity().setSize((int) imageInfo.getLength());
-
+
text_height.setNumber(imageInfo.getHeight());
getEntity().setHeight(imageInfo.getHeight());
-
+
text_width.setNumber(imageInfo.getWidth());
getEntity().setWidth(imageInfo.getWidth());
}
-
-
- element_messages.setText("");
+
+
}
/*
String uriString = text_uri.getText();
URI uri = StringUtils.isNotEmpty(uriString) ? new URI(uriString) : null;
getEntity().setUri(uri);
-
-
+
+
loadImage(getEntity().getUri(), true);
-
+
firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
} catch (Exception e) {
handleException(e);
- } finally {
+ } finally {
firePropertyChangeEvent(this);
}
}
}
protected void handleException(Exception e) {
- super.handleException(e);
element_image.unloadImage(postRunnable);
text_height.setNumber(0);
text_width.setNumber(0);
-
+
element_image.loadImage(new Runnable(){
- public void run() {
- StoreUtil.reflowDetailsViewer();
- StoreUtil.reflowSupplementalViewer();
+ @Override
+ public void run() {
+ AbstractUtility.reflowDetailsViewer();
+ AbstractUtility.reflowSupplementalViewer();
}
});
}
*/
package eu.etaxonomy.taxeditor.ui.section.media;
-import java.net.URISyntaxException;
import java.util.List;
import java.util.Set;
import eu.etaxonomy.cdm.model.media.MediaUtils;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.preference.Resources;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
}
@Override
- public void handleEvent(Object eventSource) {
+ public void handleEvent(Object eventSource){
if(eventSource==textUri){
textUri.setBackground(getPersistentBackground());
- try {
- singleMediaRepresentationPart.setUri(textUri.getUri());
- } catch (URISyntaxException e) {
- textUri.setBackground(getColor(Resources.COLOR_PARSE_ERROR));
- }
+ singleMediaRepresentationPart.setUri(textUri.getUri());
}
}
// $Id$
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* 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.
*/
import java.net.URI;
import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
import org.eclipse.swt.events.SelectionListener;
import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.LabelElement;
import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
-import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
/**
public class MediaRepresentationPartElement<T extends MediaRepresentationPart> extends
AbstractEntityCollectionElement<T> {
- protected TextWithLabelElement text_uri;
+ protected UriWithLabelElement text_uri;
protected NumberWithLabelElement text_size;
- protected LabelElement element_messages;
-
- /**
- * <p>Constructor for AbstractMediaRepresentationPartElement.</p>
- *
- * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
- * @param section a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
- * @param element a T object.
- * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
- * @param style a int.
- * @param <T> a T object.
- */
public MediaRepresentationPartElement(CdmFormFactory formFactory,
AbstractFormSection section,
T element, SelectionListener removeListener,
int style) {
super(formFactory, section, element, removeListener, null, style);
}
-
+
/** {@inheritDoc} */
@Override
public void createControls(ICdmFormElement element, int style) {
- text_uri = formFactory.createTextWithLabelElement(element, "URI", null, style);
+ text_uri = formFactory.createUriWithLabelElement(element, "URI", null, style);
text_size = formFactory.createNumberTextWithLabelElement(element, "Size", null, style);
text_size.setEnabled(false);
-
- element_messages = formFactory.createLabel(element, "");
}
@Override
if(entity.getUri() != null){
text_uri.setText(entity.getUri().toString());
}
- element_messages.setText("We currrently do not know how to display this generic MediaRepresentationPart to you.");
}
@Override
public void handleEvent(Object eventSource) {
if(eventSource == text_uri){
- try {
- String uriString = text_uri.getText();
- URI uri = StringUtils.isNotEmpty(uriString) ? new URI(uriString) : null;
- getEntity().setUri(uri);
- } catch (Exception e) {
- handleException(e);
- } finally {
- firePropertyChangeEvent(this);
- }
- }
- }
-
- protected void handleException(Exception e) {
- element_messages.setText(e.getMessage());
- text_size.setText("");
+ URI uri = text_uri.getUri();
+ getEntity().setUri(uri);
+ firePropertyChangeEvent(this);
+ }
}
}
package eu.etaxonomy.taxeditor.ui.section.name;
import java.net.URI;
-import java.net.URISyntaxException;
import org.eclipse.swt.events.SelectionListener;
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.model.MessagingUtils;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
-import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
import eu.etaxonomy.taxeditor.ui.openurl.IOpenUrlEnabled;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
private final SelectionArbitrator selectionArbitrator;
- private TextWithLabelElement protologueUriText;
+ private UriWithLabelElement protologueUriText;
private MediaRepresentationPart mediaRepresentationPart;
private Media media;
private MediaRepresentation mediaRepresentation;
/** {@inheritDoc} */
@Override
public void createControls(ICdmFormElement element, int style) {
- protologueUriText = formFactory.createTextWithLabelElement(this, "Protologue URI", "", style);
+ protologueUriText = formFactory.createUriWithLabelElement(element, "Protologue URI", null, style);
formFactory.createOpenUrlSelectorElement(element, "Query BHL for Reference Image", this, style);
}
@Override
public void handleEvent(Object eventSource) {
if(eventSource == protologueUriText && protologueUriText.getText()!=null){
- try {
- mediaRepresentationPart.setUri(new URI(protologueUriText.getText()));
- } catch (URISyntaxException e) {
- MessagingUtils.warningDialog("Could not parse URI", getClass(), e.getMessage());
- }
+ mediaRepresentationPart.setUri(protologueUriText.getUri());
}
}
package eu.etaxonomy.taxeditor.ui.section.reference;
-import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
import eu.etaxonomy.cdm.model.reference.ReferenceType;
import eu.etaxonomy.taxeditor.model.AuthorHelper;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
getEntity().setAbbrevTitle(text_abbrevTitle.getText());
toggleableAbbrevCache.setText(text_abbrevTitle.getText());
} else if (eventSource == text_uri) {
- try {
- getEntity().setUri(text_uri.getUri());
- } catch (URISyntaxException e) {
- MessagingUtils.warningDialog("Invalid URI", getClass(),
- e.getLocalizedMessage());
- }
+ getEntity().setUri(text_uri.getUri());
} else if (eventSource == text_volume) {
getEntity().setVolume(text_volume.getText());
}
*/\r
package eu.etaxonomy.taxeditor.ui.section.vocabulary;\r
\r
-import java.net.URISyntaxException;\r
-\r
import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.common.TermType;\r
import eu.etaxonomy.cdm.model.location.NamedArea;\r
getEntity().setLabel(text_label.getText());\r
getEntity().setTitleCache(null);\r
} else if (eventSource == text_description) {\r
-\r
getEntity().getRepresentation(Language.getDefaultLanguage()).setText(text_description.getText());\r
-\r
} else if (eventSource == uri_uri) {\r
-\r
- try {\r
- getEntity().setUri(uri_uri.getUri());\r
- } catch (URISyntaxException e) {\r
-\r
- e.printStackTrace();\r
- }\r
+ getEntity().setUri(uri_uri.getUri());\r
} else if (eventSource == text_abbreviatedLabel) {\r
getEntity().getRepresentation(Language.getDefaultLanguage()).setAbbreviatedLabel(text_abbreviatedLabel.getText());\r
} else if (eventSource == timePeriod_validPeriod) {\r
// $Id$\r
/**\r
* Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
* http://www.e-taxonomy.eu\r
-* \r
+*\r
* The contents of this file are subject to the Mozilla Public License Version 1.1\r
* See LICENSE.TXT at the top of this package for the full license terms.\r
*/\r
package eu.etaxonomy.taxeditor.ui.section.vocabulary;\r
\r
-import java.net.URISyntaxException;\r
-\r
import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
-import eu.etaxonomy.taxeditor.model.MessagingUtils;\r
-import eu.etaxonomy.taxeditor.store.StoreUtil;\r
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;\r
@Override\r
protected void createControls(ICdmFormElement formElement,\r
TermVocabulary entity, int style) {\r
- \r
+\r
super.createControls(formElement, entity, style);\r
uri_uriTermSource = formFactory.createUriWithLabelElement(formElement, "Term Source URI", getEntity().getTermSourceUri(), style);\r
}\r
*/\r
@Override\r
public void handleEvent(Object eventSource) {\r
- \r
+\r
handleRepresentation(eventSource);\r
- \r
+\r
if (eventSource == uri_uri) {\r
- try {\r
- getEntity().setUri(uri_uri.getUri());\r
- } catch (URISyntaxException e) {\r
- MessagingUtils.messageDialog("Not a URI", getClass(), "You have to provide a valid URI");\r
- }\r
+ getEntity().setUri(uri_uri.getUri());\r
} else if (eventSource == uri_uriTermSource) {\r
- try {\r
- getEntity().setTermSourceUri(uri_uriTermSource.getUri());\r
- } catch (URISyntaxException e) {\r
- MessagingUtils.messageDialog("Not a URI", getClass(), "You have to provide a valid URI");\r
- }\r
+ getEntity().setTermSourceUri(uri_uriTermSource.getUri());\r
}\r
}\r
\r