import org.eclipse.ui.forms.widgets.TableWrapData;
import eu.etaxonomy.cdm.common.UriUtils;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
/**
private Composite container;
+ private final Runnable postRunnable = new Runnable(){
+ @Override
+ public void run() {
+ AbstractUtility.reflowDetailsViewer();
+ AbstractUtility.reflowSupplementalViewer();
+ }
+ };
+
protected ImageElement(CdmFormFactory formFactory, ICdmFormElement parentElement, URI imageUri, int style) {
super(formFactory, parentElement);
}
public void loadImage(){
- loadImage(null);
- }
-
- public void loadImage(final Runnable postRunnable){
if(getImageUri() != null){
Job job = new Job("Loading image") {
}
}
- public void unloadImage(final Runnable postRunnable) {
+ public void unloadImage() {
Job job = new Job("Unloading image") {
@Override
}
public void dispose(){
- image.dispose();
- image = null;
+ if(image!=null){
+ image.dispose();
+ image = null;
+ }
imageUri = null;
- container.dispose();
- container = null;
+ if(container!=null){
+ container.dispose();
+ container = null;
+ }
}
/** {@inheritDoc} */
import eu.etaxonomy.cdm.common.media.ImageInfo;
import eu.etaxonomy.cdm.model.media.ImageFile;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
private KeyValueViewerElement element_keyValue;
private ImageElement element_image;
-
- private final Runnable postRunnable = new Runnable(){
- @Override
- public void run() {
- AbstractUtility.reflowDetailsViewer();
- AbstractUtility.reflowSupplementalViewer();
- }
- };
-
-
public ImageFileElement(CdmFormFactory cdmFormFactory,
AbstractFormSection section, ImageFile element,
SelectionListener removeListener, int style) {
private void loadImage(URI uri, boolean updateDimensions) throws IOException, HttpException{
element_image.initImageUri(uri);
- element_image.loadImage(postRunnable );
+ element_image.loadImage();
if(uri == null){
}
protected void handleException(Exception e) {
- element_image.unloadImage(postRunnable);
+ element_image.unloadImage();
text_height.setNumber(0);
text_width.setNumber(0);
- element_image.loadImage(new Runnable(){
- @Override
- public void run() {
- AbstractUtility.reflowDetailsViewer();
- AbstractUtility.reflowSupplementalViewer();
- }
- });
+ element_image.loadImage();
}
}
import java.util.Set;
import org.apache.http.HttpException;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Label;
+import eu.etaxonomy.cdm.common.media.ImageInfo;
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.media.MediaUtils;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
*/
private String uriBuffer;
private ImageElement element_image;
-
- private final Runnable postRunnable = new Runnable(){
- @Override
- public void run() {
- AbstractUtility.reflowDetailsViewer();
- AbstractUtility.reflowSupplementalViewer();
- }
- };
+ private Label lblNoImage;
public MediaDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
super(formFactory, formElement);
if(uri==null){
uriBuffer=textUri.getText();
}
- try {
- loadImage(singleMediaRepresentationPart.getUri(), true);
- } catch (Exception e) {
- handleException(e);
+ else{
+
+ ImageInfo imageInfo;
+ try {
+ imageInfo = ImageInfo.NewInstance(uri, 10000);
+ singleMediaRepresentationPart.getMediaRepresentation().setMimeType(imageInfo.getMimeType());
+ singleMediaRepresentationPart.getMediaRepresentation().setSuffix(imageInfo.getSuffix());
+ element_image = formFactory.createImageElement(parentFormElement, uri, style);
+ loadImage(singleMediaRepresentationPart.getUri());
+ } catch (Exception e) {
+ handleException();
+ }
}
}
}
element_image = formFactory.createImageElement(parentFormElement, null, style);
try {
- loadImage(singleMediaRepresentationPart.getUri(), false);
+ loadImage(singleMediaRepresentationPart.getUri());
} catch (Exception e) {
- handleException(e);
+ handleException();
}
}
}
isAdvancedMediaView = false;
}
- private void loadImage(URI uri, boolean updateDimensions) throws IOException, HttpException{
+ private void loadImage(URI uri) throws IOException, HttpException{
element_image.initImageUri(uri);
- element_image.loadImage(postRunnable);
+ element_image.loadImage();
if(uri == null){
return;
}
+ lblNoImage.dispose();
+ lblNoImage = null;
}
- private void handleException(Exception e) {
- element_image.unloadImage(postRunnable);
- element_image.loadImage(new Runnable(){
- @Override
- public void run() {
- AbstractUtility.reflowDetailsViewer();
- AbstractUtility.reflowSupplementalViewer();
- }
- });
+ private void handleException() {
+ element_image.unloadImage();
+ element_image.loadImage();
+ element_image.dispose();
+ if(lblNoImage==null){
+ lblNoImage = formFactory.createLabel(getLayoutComposite(), "No Image found");
+ lblNoImage.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ lblNoImage.setAlignment(SWT.CENTER);
+ }
}
+
public boolean isAdvancedMediaView() {
return isAdvancedMediaView;
}