Mercurial > hg > de.mpg.mpiwg.itgroup.digilib.plugin
view 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 source
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(); } }