# HG changeset patch # User dwinter # Date 1308313474 -7200 # Node ID ee955cf6c9c55cea03d1205527b1eb1ad507ea13 # Parent 183c3e96f6c363529fa0899a5f8fb3e2ae7618ee first commit diff -r 183c3e96f6c3 -r ee955cf6c9c5 .classpath --- a/.classpath Mon Jan 10 12:01:25 2011 +0100 +++ b/.classpath Fri Jun 17 14:24:34 2011 +0200 @@ -6,5 +6,6 @@ + diff -r 183c3e96f6c3 -r ee955cf6c9c5 .project --- a/.project Mon Jan 10 12:01:25 2011 +0100 +++ b/.project Fri Jun 17 14:24:34 2011 +0200 @@ -1,6 +1,6 @@ - de.mpg.mpiwg.itgroup.digilib.plugin + de.mpg.mpiwg.itgroup.digilib.core diff -r 183c3e96f6c3 -r ee955cf6c9c5 .settings/org.eclipse.jdt.core.prefs --- a/.settings/org.eclipse.jdt.core.prefs Mon Jan 10 12:01:25 2011 +0100 +++ b/.settings/org.eclipse.jdt.core.prefs Fri Jun 17 14:24:34 2011 +0200 @@ -1,8 +1,12 @@ -#Mon Dec 27 10:56:13 CET 2010 +#Thu Jun 16 17:58:54 CEST 2011 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.source=1.5 diff -r 183c3e96f6c3 -r ee955cf6c9c5 META-INF/MANIFEST.MF --- a/META-INF/MANIFEST.MF Mon Jan 10 12:01:25 2011 +0100 +++ b/META-INF/MANIFEST.MF Fri Jun 17 14:24:34 2011 +0200 @@ -1,7 +1,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 -Bundle-Name: digilibClient -Bundle-SymbolicName: de.mpg.mpiwg.itgroup.digilib.plugin;singleton:=true +Bundle-Name: digilibClient-core +Bundle-SymbolicName: de.mpg.mpiwg.itgroup.digilib.core;singleton:=true Bundle-Version: 0.0.1 Bundle-Activator: de.mpg.mpiwg.itgroup.digilib.plugin.Activator Require-Bundle: org.eclipse.ui, @@ -10,11 +10,13 @@ org.eclipse.core.resources, org.eclipse.ui.editors, org.eclipse.ui.ide, - org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.100" + org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.100", + org.apache.axis2.full;bundle-version="1.4.0" Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: J2SE-1.5 Bundle-ClassPath: libs/commons-lang-2.3.jar, ., libs/jdom-1.0.jar, - libs/jaxen-1.1.1.jar + libs/jaxen-1.1.1.jar, + libs/digilibservice-client-1.0-SNAPSHOT.jar Export-Package: de.mpg.mpiwg.itgroup.digilib.plugin.editors diff -r 183c3e96f6c3 -r ee955cf6c9c5 build.properties --- a/build.properties Mon Jan 10 12:01:25 2011 +0100 +++ b/build.properties Fri Jun 17 14:24:34 2011 +0200 @@ -6,5 +6,6 @@ libs/commons-lang-2.3.jar,\ libs/jdom-1.0.jar,\ libs/jaxen-1.1.1.jar,\ + libs/digilibservice-client-1.0-SNAPSHOT.jar,\ plugin_customization.ini source.. = src/ diff -r 183c3e96f6c3 -r ee955cf6c9c5 libs/digilibservice-client-1.0-SNAPSHOT.jar Binary file libs/digilibservice-client-1.0-SNAPSHOT.jar has changed diff -r 183c3e96f6c3 -r ee955cf6c9c5 plugin.xml --- a/plugin.xml Mon Jan 10 12:01:25 2011 +0100 +++ b/plugin.xml Fri Jun 17 14:24:34 2011 +0200 @@ -3,121 +3,67 @@ + point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation"> + point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation"> + point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation"> + priority="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation3"> + point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation"> + priority="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation4"> + point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation"> - - - - + priority="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation5"> + point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation"> - - - - - - - - - - - - - - - - - - + class="de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.ScaleUp" + priority="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation6"> + point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation"> + class="de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.ScaleDown" + priority="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation7"> - - + point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation"> + + - - - - - - + point="de.mpg.mpiwg.itgroup.digilib.core.DigilibImageManipulation"> + + @@ -152,5 +98,15 @@ + + + + diff -r 183c3e96f6c3 -r ee955cf6c9c5 src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImage.java --- a/src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImage.java Mon Jan 10 12:01:25 2011 +0100 +++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImage.java Fri Jun 17 14:24:34 2011 +0200 @@ -35,7 +35,7 @@ * @author dwinter * */ -public class DigiImage implements IDigiImage, IAdaptable, ISelectionProvider{ +public class DigiImage implements IDigiImage, IAdaptable{ /** * Implemens a connection to Digilib. diff -r 183c3e96f6c3 -r ee955cf6c9c5 src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImageController.java --- a/src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImageController.java Mon Jan 10 12:01:25 2011 +0100 +++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImageController.java Fri Jun 17 14:24:34 2011 +0200 @@ -17,7 +17,7 @@ public static String VMIR="vmir"; // vertical mirroring public static String HMIR="hmir"; // horizontal mirroring - public DigiImage digiImage; // the image to be controlled. + public IDigiImage digiImage; // the image to be controlled. //private DigiImageParameter parameter; @@ -27,7 +27,7 @@ * * @param di */ - public DigiImageController(DigiImage di){ + public DigiImageController(IDigiImage di){ this.digiImage=di; } diff -r 183c3e96f6c3 -r ee955cf6c9c5 src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImageParameter.java --- a/src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImageParameter.java Mon Jan 10 12:01:25 2011 +0100 +++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImageParameter.java Fri Jun 17 14:24:34 2011 +0200 @@ -275,6 +275,11 @@ } } + +public void setType(int type) { + // TODO Auto-generated method stub + +} diff -r 183c3e96f6c3 -r ee955cf6c9c5 src/de/mpg/mpiwg/itgroup/digilib/digiImage/IDigiImage.java --- a/src/de/mpg/mpiwg/itgroup/digilib/digiImage/IDigiImage.java Mon Jan 10 12:01:25 2011 +0100 +++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/IDigiImage.java Fri Jun 17 14:24:34 2011 +0200 @@ -1,5 +1,6 @@ package de.mpg.mpiwg.itgroup.digilib.digiImage; +import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; @@ -11,7 +12,7 @@ * @author dwinter * */ -public interface IDigiImage { +public interface IDigiImage extends ISelectionProvider { /** * Gets the current set of parameters. diff -r 183c3e96f6c3 -r ee955cf6c9c5 src/de/mpg/mpiwg/itgroup/digilib/digiImage/TextGridDigiImage.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/TextGridDigiImage.java Fri Jun 17 14:24:34 2011 +0200 @@ -0,0 +1,179 @@ +package de.mpg.mpiwg.itgroup.digilib.digiImage; + +import info.textgrid.namespaces.middleware.digilib.services.digilibservice.DigilibService; +import info.textgrid.namespaces.middleware.digilib.services.digilibservice.DigilibServicePortType; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +import javax.xml.ws.Holder; + +import org.apache.commons.lang.StringUtils; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; + +import de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.ZoomAreaRectangleListener; +import de.mpg.mpiwg.itgroup.digilib.plugin.editors.DigilibLinkEditorObservable; + +public class TextGridDigiImage implements IDigiImage { + //private URL url; + private Composite parent; + + private DigiImageParameter dp; + + private String baseUrl; + + private Label label; + + private ZoomAreaRectangleListener rectangleListener=null; + + private List selectionChangeListener = new ArrayList(); + + private DigilibService service; + + private DigilibServicePortType port; + + /* some parameters should not occur in the URL constructed by {@link #createUrlFromParameter(DigiImageParameter)} if set to negative values. + * + */ + private static String[] omitIfNegativeArray = {"dw","dh","ddpi","ddpix","ddpiy"}; + private static List omitIfNegative = Arrays.asList(omitIfNegativeArray); + + String logParam = null; + // Holder for return data + Holder mimeType = new Holder(); + Holder imageData = new Holder(); + Holder width = new Holder(); + Holder height = new Holder(); + + private String sid; + + public TextGridDigiImage(Composite parent, int style, + DigiImageParameter dp, String sid) { + label = new Label(parent, style); + this.parent = parent; + this.dp=dp; + try { + service = new DigilibService(new URL("http://localhost:8080/digilibservice-service/service?wsdl")); + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + port = service.getDigilibServicePort(); + this.sid=sid; + this.dp=dp; + try { + createNewImage(createQueryFromParameter(dp)); + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + // TODO Auto-generated constructor stub + } + + public void addSelectionChangedListener(ISelectionChangedListener listener) { + selectionChangeListener.add(listener); + + } + + public ISelection getSelection() { + return new StructuredSelection(this); + } + + public void removeSelectionChangedListener( + ISelectionChangedListener listener) { + selectionChangeListener.remove(listener); + + } + + public void setSelection(ISelection selection) { + for (ISelectionChangedListener sl: selectionChangeListener){ + SelectionChangedEvent event = new SelectionChangedEvent(this, selection); + sl.selectionChanged(event); + + } + } + + public DigiImageParameter getParameter() { + + return dp; + } + + public void setParameter(DigiImageParameter dp) { + this.dp=dp; + + } + + public void redraw() { + try { + createNewImage(createQueryFromParameter(dp)); + setSelection(new StructuredSelection(this)); + DigilibLinkEditorObservable.INSTANCE.imageHasChanged(this); + + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + private void createNewImage(String query) { + + port.getScaledImage(sid,dp.fn, query, logParam, mimeType, imageData, width, height); + + Image img = new Image(parent.getDisplay(),new ByteArrayInputStream(imageData.value)) + ; + //Label label = new Label(parent, SWT.None); + label.setImage(img); + + label.setVisible(true); + + } + + private String createQueryFromParameter(DigiImageParameter dp) throws MalformedURLException { + Map qa = dp.createMapFromParameters(omitIfNegative); + + List queryArray = new ArrayList(); + for(String key:qa.keySet()){ + queryArray.add(key+"="+qa.get(key)); + } + String queryString = StringUtils.join(queryArray,"&"); + + String stringUrl=queryString; + + return stringUrl; + } + + public Label getLabel() { + return label; + + } + + public void setLabel(Label label) { + this.label = label; + + } + + public ZoomAreaRectangleListener getRectangleListener() { + return rectangleListener; + } + + public void setRectangleListener(ZoomAreaRectangleListener rectangleListener) { + this.rectangleListener = rectangleListener; + } + + public Composite getParent() { + return parent; + } + +} diff -r 183c3e96f6c3 -r ee955cf6c9c5 src/de/mpg/mpiwg/itgroup/digilib/manipulator/DigilibImageManipulatorProvider.java --- a/src/de/mpg/mpiwg/itgroup/digilib/manipulator/DigilibImageManipulatorProvider.java Mon Jan 10 12:01:25 2011 +0100 +++ b/src/de/mpg/mpiwg/itgroup/digilib/manipulator/DigilibImageManipulatorProvider.java Fri Jun 17 14:24:34 2011 +0200 @@ -30,7 +30,7 @@ propertyExtensions = new ArrayList(); propertyExtensionsMap = new HashMap(); - IConfigurationElement[] configs = Platform.getExtensionRegistry().getConfigurationElementsFor("de.mpg.mpiwg.itgroup.digilib.plugin","DigilibImageManipulation"); + IConfigurationElement[] configs = Platform.getExtensionRegistry().getConfigurationElementsFor("de.mpg.mpiwg.itgroup.digilib.core","DigilibImageManipulation"); for (IConfigurationElement e : configs) { Object o = null; diff -r 183c3e96f6c3 -r ee955cf6c9c5 src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorInput.java --- a/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorInput.java Mon Jan 10 12:01:25 2011 +0100 +++ b/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorInput.java Fri Jun 17 14:24:34 2011 +0200 @@ -1,5 +1,7 @@ package de.mpg.mpiwg.itgroup.digilib.plugin.editors; +import java.net.URI; + import org.eclipse.core.resources.IFile; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.IEditorInput; @@ -14,7 +16,20 @@ private IFile file; public static int INDEX_META=0; + public static int TEXTGRID=1; private int type; + private URI uri; + private String sid; + private String name; + private String toolTipText; + + public URI getUri() { + return uri; + } + + public void setUri(URI uri) { + this.uri = uri; + } /** * @return @@ -44,6 +59,18 @@ */ public DigilibLinkEditorInput(IFile file, int type) { this.file = file; + this.name=file.getName(); + this.toolTipText=file.getFullPath().toOSString(); + setType(type); + } + + public DigilibLinkEditorInput(URI textGridUri, String sid,int type) { + this.file= null; + this.name=textGridUri.toASCIIString(); //TODO: get real name from Metadata + this.toolTipText=textGridUri.toASCIIString(); //TODO: get real name from Metadata + this.uri = textGridUri; + this.setSid(sid); + setType(type); } @@ -64,8 +91,7 @@ } public String getName() { - - String name = file.getName(); + return name; } @@ -76,7 +102,15 @@ public String getToolTipText() { - return file.getFullPath().toOSString(); + return toolTipText; + } + + public void setSid(String sid) { + this.sid = sid; + } + + public String getSid() { + return sid; } } diff -r 183c3e96f6c3 -r ee955cf6c9c5 src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorObservable.java --- a/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorObservable.java Mon Jan 10 12:01:25 2011 +0100 +++ b/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorObservable.java Fri Jun 17 14:24:34 2011 +0200 @@ -3,6 +3,7 @@ import java.util.Observable; import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImage; +import de.mpg.mpiwg.itgroup.digilib.digiImage.IDigiImage; public class DigilibLinkEditorObservable extends Observable { @@ -10,7 +11,7 @@ protected DigilibLinkEditorObservable(){}; - public void imageHasChanged(DigiImage di){ + public void imageHasChanged(IDigiImage di){ setChanged(); notifyObservers(di); } diff -r 183c3e96f6c3 -r ee955cf6c9c5 src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java --- a/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java Mon Jan 10 12:01:25 2011 +0100 +++ b/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java Fri Jun 17 14:24:34 2011 +0200 @@ -5,6 +5,7 @@ import java.util.Observable; import java.util.Observer; +import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.viewers.StructuredSelection; @@ -26,6 +27,8 @@ import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImageController; import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImageParameter; import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiNav; +import de.mpg.mpiwg.itgroup.digilib.digiImage.IDigiImage; +import de.mpg.mpiwg.itgroup.digilib.digiImage.TextGridDigiImage; import de.mpg.mpiwg.itgroup.indexMeta.Utils.ParseIndexMeta; /** @@ -86,6 +89,10 @@ DigilibLinkEditorInput input= (DigilibLinkEditorInput) getEditorInput(); String path=""; + + + IDigiImage digiImage; + if (input.getType()==DigilibLinkEditorInput.INDEX_META){ ParseIndexMeta im; try { @@ -105,6 +112,12 @@ } try { path=im.getImagePath(); + path=path.replace("/mpiwg/online", ""); + DigiImageParameter dp = new DigiImageParameter(path); + dp.setType(input.getType()); + dp.setDh(500); + dp.setDw(500); + digiImage = new DigiImage(mainComposite, SWT.BORDER, dp); } catch (JDOMException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -112,19 +125,24 @@ } if (path==null) return; + } else if (input.getType()==DigilibLinkEditorInput.TEXTGRID){ + path = input.getUri().toASCIIString(); + DigiImageParameter dp = new DigiImageParameter(path); + dp.setType(input.getType()); + dp.setDh(500); + dp.setDw(500); + digiImage = new TextGridDigiImage(mainComposite, SWT.BORDER, dp,input.getSid()); + } else { //TODO: issue warning that type cannot be solved. return; } - path=path.replace("/mpiwg/online", ""); - DigiImageParameter dp = new DigiImageParameter(path); - dp.setDh(500); - dp.setDw(500); + - DigiImage digiImage = new DigiImage(mainComposite, SWT.BORDER, dp); + DigiImageController digiImageController = new DigiImageController(digiImage); //imageComp.setBackgroundImage(img); new DigiNav(mainComposite,SWT.NONE,digiImageController);