# HG changeset patch
# User dwinter
# Date 1294655883 -3600
# Node ID 6e7bb34675315ca594b824522bb024c215ebe7bd
# Parent 1a7940ac51690ca5b62e0a3bed5225e6bed80e39
new property view
diff -r 1a7940ac5169 -r 6e7bb3467531 .classpath
--- a/.classpath Wed Jan 05 14:04:58 2011 +0100
+++ b/.classpath Mon Jan 10 11:38:03 2011 +0100
@@ -3,13 +3,6 @@
-
-
-
-
-
-
-
diff -r 1a7940ac5169 -r 6e7bb3467531 META-INF/MANIFEST.MF
--- a/META-INF/MANIFEST.MF Wed Jan 05 14:04:58 2011 +0100
+++ b/META-INF/MANIFEST.MF Mon Jan 10 11:38:03 2011 +0100
@@ -9,7 +9,8 @@
org.eclipse.jface.text,
org.eclipse.core.resources,
org.eclipse.ui.editors,
- org.eclipse.ui.ide
+ org.eclipse.ui.ide,
+ org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.100"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ClassPath: libs/commons-lang-2.3.jar,
diff -r 1a7940ac5169 -r 6e7bb3467531 build.properties
--- a/build.properties Wed Jan 05 14:04:58 2011 +0100
+++ b/build.properties Mon Jan 10 11:38:03 2011 +0100
@@ -1,4 +1,3 @@
-source.. = src/
output.. = bin/
bin.includes = plugin.xml,\
META-INF/,\
@@ -6,4 +5,6 @@
icons/,\
libs/commons-lang-2.3.jar,\
libs/jdom-1.0.jar,\
- libs/jaxen-1.1.1.jar
+ libs/jaxen-1.1.1.jar,\
+ plugin_customization.ini
+source.. = src/
diff -r 1a7940ac5169 -r 6e7bb3467531 plugin.xml
--- a/plugin.xml Wed Jan 05 14:04:58 2011 +0100
+++ b/plugin.xml Mon Jan 10 11:38:03 2011 +0100
@@ -119,5 +119,38 @@
class="de.mpg.mpiwg.itgroup.digilib.plugin.PluginPreferenceInitializer">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 1a7940ac5169 -r 6e7bb3467531 plugin_customization.ini
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/plugin_customization.ini Mon Jan 10 11:38:03 2011 +0100
@@ -0,0 +1,1 @@
+org.eclipse.ui/SHOW_PROGRESS_ON_STARTUP = false
diff -r 1a7940ac5169 -r 6e7bb3467531 src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImage.java
--- a/src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImage.java Wed Jan 05 14:04:58 2011 +0100
+++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImage.java Mon Jan 10 11:38:03 2011 +0100
@@ -165,6 +165,7 @@
String queryString = StringUtils.join(queryArray,"&");
String stringUrl=baseUrl+"?"+queryString;
+
return new URL(stringUrl);
}
@@ -194,6 +195,7 @@
setNewURL(createUrlFromParameter(dp));
setSelection(new StructuredSelection(this));
DigilibLinkEditorObservable.INSTANCE.imageHasChanged(this);
+
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@@ -227,6 +229,7 @@
public Object getAdapter(Class adapter) {
if (adapter == IPropertySource.class)
return new DigiImageProperties(this);
+
return null;
}
@@ -262,7 +265,6 @@
public void setSelection(ISelection selection) {
for (ISelectionChangedListener sl: selectionChangeListener){
-
SelectionChangedEvent event = new SelectionChangedEvent(this, selection);
sl.selectionChanged(event);
@@ -272,6 +274,7 @@
}
+
}
diff -r 1a7940ac5169 -r 6e7bb3467531 src/de/mpg/mpiwg/itgroup/digilib/digiImage/properties/DigiImageProperties.java
--- a/src/de/mpg/mpiwg/itgroup/digilib/digiImage/properties/DigiImageProperties.java Wed Jan 05 14:04:58 2011 +0100
+++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/properties/DigiImageProperties.java Mon Jan 10 11:38:03 2011 +0100
@@ -13,12 +13,12 @@
//private DigiImageParameter dp;
private DigiImage digiImage;
- private Map pt;
+ //private Map pt;
public DigiImageProperties(DigiImage digiImage) {
//this.dp = digiImage.getParameter();
this.digiImage = digiImage;
- this.pt = digiImage.getParameter().createMapFromParameters(null);
+ //this.pt = digiImage.getParameter().createMapFromParameters(null);
}
public Object getEditableValue() {
@@ -28,6 +28,7 @@
public IPropertyDescriptor[] getPropertyDescriptors() {
+ Map pt = digiImage.getParameter().createMapFromParameters(null);
IPropertyDescriptor[] propertyDescriptors = new IPropertyDescriptor[pt.keySet().size()];
int i=0;
@@ -51,6 +52,7 @@
}
public Object getPropertyValue(Object id) {
+ Map pt = digiImage.getParameter().createMapFromParameters(null);
return pt.get(id);
}
@@ -65,16 +67,30 @@
}
public void setPropertyValue(Object id, Object value) {
-
+ Map pt = digiImage.getParameter().createMapFromParameters(null);
String oldValue = pt.get(id);
if(oldValue.equals(value)){
return;
}
+
pt.put((String)id, (String)value);
digiImage.setParameter(new DigiImageParameter(pt));
digiImage.redraw();
}
+
+ public void setPropertyValueNoDraw(Object id, Object value) {
+
+ Map pt = digiImage.getParameter().createMapFromParameters(null);
+ String oldValue = pt.get(id);
+ if(oldValue.equals(value)){
+ return;
+ }
+
+
+ pt.put((String)id, (String)value);
+ digiImage.setParameter(new DigiImageParameter(pt));
+ }
}
diff -r 1a7940ac5169 -r 6e7bb3467531 src/de/mpg/mpiwg/itgroup/digilib/digiImage/properties/DigiImagePropertySection.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/properties/DigiImagePropertySection.java Mon Jan 10 11:38:03 2011 +0100
@@ -0,0 +1,128 @@
+package de.mpg.mpiwg.itgroup.digilib.digiImage.properties;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+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.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.jface.util.Assert;
+
+import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImage;
+import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImageParameter;
+
+public class DigiImagePropertySection extends AbstractPropertySection {
+
+ private DigiImage digiImage;
+ private Map texts = new HashMap();
+
+
+ private Map listeners = new HashMap();
+ private Button button;
+
+
+
+
+
+
+ public void createControls(Composite parent,
+ TabbedPropertySheetPage aTabbedPropertySheetPage) {
+ super.createControls(parent, aTabbedPropertySheetPage);
+
+ DigiImageParameter dp = new DigiImageParameter("");
+ GridLayout gridLayout = new GridLayout(1,false);
+ parent.setLayout(gridLayout);
+ for (String key: dp.createMapFromParameters(null).keySet()){
+
+ Composite composite = getWidgetFactory()
+ .createFlatFormComposite(parent);
+ FormData data;
+
+ Text t = getWidgetFactory().createText(composite, "");
+ texts.put(key, t);
+ data = new FormData();
+ data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH);
+ data.right = new FormAttachment(100, 0);
+ data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
+ t.setLayoutData(data);
+
+
+ CLabel labelLabel = getWidgetFactory()
+ .createCLabel(composite, key); //$NON-NLS-1$
+ data = new FormData();
+ data.left = new FormAttachment(0, 0);
+ data.right = new FormAttachment(t,
+ -ITabbedPropertyConstants.HSPACE);
+ data.top = new FormAttachment(t, 0, SWT.CENTER);
+ labelLabel.setLayoutData(data);
+ }
+ Composite composite = getWidgetFactory()
+ .createFlatFormComposite(parent);
+ button = getWidgetFactory().createButton(composite, "redraw", SWT.None);
+
+ }
+
+ public void setInput(IWorkbenchPart part, ISelection selection) {
+ super.setInput(part, selection);
+
+ Assert.isTrue(selection instanceof IStructuredSelection);
+ Object input = ((IStructuredSelection) selection).getFirstElement();
+ Assert.isTrue(input instanceof DigiImage);
+ this.digiImage = (DigiImage) input;
+
+ Map pms = digiImage.getParameter().createMapFromParameters(null);
+
+ for(String key: digiImage.getParameter().createMapFromParameters(null).keySet()){
+
+
+ ModifyListener listener = new PropertyListener(key,digiImage);
+
+ texts.get(key).addModifyListener(listener);
+ listeners.put(key, listener);
+ }
+ button.addMouseListener(new RedrawButtonListener(digiImage,texts));
+
+ }
+
+ public void refresh() {
+
+ DigiImageProperties properties = (DigiImageProperties) digiImage
+ .getAdapter(IPropertySource.class);
+
+ for(String key: texts.keySet()){
+
+ Text labelText=texts.get(key);
+ labelText.removeModifyListener(listeners.get(key));
+
+ labelText.setText((String)properties.getPropertyValue(key));
+ labelText.addModifyListener(listeners.get(key));
+
+ }
+ super.refresh();
+ }
+
+ @Override
+ public void aboutToBeShown() {
+ System.out.println("about to be shown");
+
+
+ super.aboutToBeShown();
+ }
+}
diff -r 1a7940ac5169 -r 6e7bb3467531 src/de/mpg/mpiwg/itgroup/digilib/digiImage/properties/PropertyListener.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/properties/PropertyListener.java Mon Jan 10 11:38:03 2011 +0100
@@ -0,0 +1,35 @@
+package de.mpg.mpiwg.itgroup.digilib.digiImage.properties;
+
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.views.properties.IPropertySource;
+
+import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImage;
+
+public class PropertyListener implements ModifyListener {
+
+ private String key;
+ private DigiImage digiImage;
+ public PropertyListener(String key, DigiImage digiImage){
+ this.key = key;
+ this.digiImage = digiImage;
+ }
+
+
+
+ public void modifyText(ModifyEvent event) {
+ DigiImageProperties properties = (DigiImageProperties) digiImage
+ .getAdapter(IPropertySource.class);
+ Text t = (Text)event.getSource();
+ String c = t.getText();
+ System.out.println(c);
+
+ properties.setPropertyValueNoDraw(key, (String)c);
+ }
+
+
+
+ }
+
+
diff -r 1a7940ac5169 -r 6e7bb3467531 src/de/mpg/mpiwg/itgroup/digilib/digiImage/properties/RedrawButtonListener.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/de/mpg/mpiwg/itgroup/digilib/digiImage/properties/RedrawButtonListener.java Mon Jan 10 11:38:03 2011 +0100
@@ -0,0 +1,47 @@
+package de.mpg.mpiwg.itgroup.digilib.digiImage.properties;
+
+import java.util.Map;
+
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.views.properties.IPropertySource;
+
+import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImage;
+
+public class RedrawButtonListener implements MouseListener {
+
+
+ private DigiImage digiImage;
+ private Map texts;
+
+ public RedrawButtonListener(DigiImage digiImage, Map texts) {
+ this.digiImage=digiImage;
+ this.texts=texts;
+ }
+
+ public void mouseDoubleClick(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void mouseDown(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void mouseUp(MouseEvent e) {
+
+// DigiImageProperties properties = (DigiImageProperties) digiImage
+// .getAdapter(IPropertySource.class);
+//
+//
+// for (String key: texts.keySet()){
+// properties.setPropertyValue(key, (String)texts.get(key).getText());
+//
+// }
+ digiImage.redraw();
+ }
+
+}
diff -r 1a7940ac5169 -r 6e7bb3467531 src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java
--- a/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java Wed Jan 05 14:04:58 2011 +0100
+++ b/src/de/mpg/mpiwg/itgroup/digilib/plugin/editors/DigilibLinkEditorPart.java Mon Jan 10 11:38:03 2011 +0100
@@ -16,18 +16,24 @@
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IPartService;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.internal.WWinPartService;
import org.eclipse.ui.part.EditorPart;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.eclipse.ui.views.properties.PropertySheet;
import org.eclipse.ui.views.properties.PropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.jdom.JDOMException;
import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImage;
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.plugin.Activator;
import de.mpg.mpiwg.itgroup.indexMeta.Utils.ParseIndexMeta;
/**
@@ -36,10 +42,12 @@
* @author dwinter
*
*/
-public class DigilibLinkEditorPart extends EditorPart implements Observer{
+public class DigilibLinkEditorPart extends EditorPart implements Observer, ITabbedPropertySheetPageContributor{
private Composite mainComposite;
private ScrolledComposite sc;
+ private boolean isDirty;
+ private TabbedPropertySheetPage tp=null;
@Override
public void doSave(IProgressMonitor monitor) {
// TODO Auto-generated method stub
@@ -62,8 +70,7 @@
@Override
public boolean isDirty() {
- // TODO Auto-generated method stub
- return false;
+ return isDirty;
}
@Override
@@ -131,6 +138,7 @@
new DigiNav(mainComposite,SWT.NONE,digiImageController);
getSite().setSelectionProvider(digiImage);
+ //StructuredSelection strucSel = new StructuredSelection(digiImage);
digiImage.setSelection(new StructuredSelection(digiImage));
sc.setMinSize(mainComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
@@ -153,15 +161,15 @@
mainComposite.pack();
sc.setMinSize(mainComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
sc.layout();
-
-
- //refresh the property view.
- IWorkbenchPage page = getSite().getPage();
+ isDirty=true;
+ firePropertyChange(PROP_DIRTY);
- IViewPart view = page.findView(IPageLayout.ID_PROP_SHEET);
+ //Object[] ls = getListeners();
+ //System.out.println(ls);
- ((PropertySheetPage)((PropertySheet)view).getCurrentPage()).refresh();
- //sc.pack();
+ if (tp!=null)
+ tp.refresh();
+
} else if (Integer.class.isInstance(arg)){
int b = (Integer) arg;
@@ -173,7 +181,19 @@
}
+
+ public String getContributorId() {
+ String contribId = getSite().getId();
+ return contribId;
+ }
-
+ public Object getAdapter(Class adapter) {
+ if (adapter == IPropertySheetPage.class){
+
+ tp = new TabbedPropertySheetPage(this);
+ return tp;
+ }
+ return super.getAdapter(adapter);
+ }
}