Mercurial > hg > de.mpg.mpiwg.itgroup.digilib.plugin
diff src/de/mpg/mpiwg/itgroup/digilib/digiImage/properties/DigiImagePropertySection.java @ 25:6e7bb3467531
new property view
author | dwinter |
---|---|
date | Mon, 10 Jan 2011 11:38:03 +0100 |
parents | |
children | 183c3e96f6c3 |
line wrap: on
line diff
--- /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<String,Text> texts = new HashMap<String,Text>(); + + + private Map<String,ModifyListener> listeners = new HashMap<String,ModifyListener>(); + 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<String, String> 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(); + } +}