comparison 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
comparison
equal deleted inserted replaced
24:1a7940ac5169 25:6e7bb3467531
1 package de.mpg.mpiwg.itgroup.digilib.digiImage.properties;
2
3 import java.util.ArrayList;
4 import java.util.HashMap;
5 import java.util.List;
6 import java.util.Map;
7
8 import org.eclipse.jface.viewers.ISelection;
9 import org.eclipse.jface.viewers.IStructuredSelection;
10 import org.eclipse.swt.SWT;
11 import org.eclipse.swt.custom.CLabel;
12 import org.eclipse.swt.events.ModifyEvent;
13 import org.eclipse.swt.events.ModifyListener;
14 import org.eclipse.swt.layout.FormAttachment;
15 import org.eclipse.swt.layout.FormData;
16 import org.eclipse.swt.layout.GridLayout;
17 import org.eclipse.swt.widgets.Button;
18 import org.eclipse.swt.widgets.Composite;
19 import org.eclipse.swt.widgets.Table;
20 import org.eclipse.swt.widgets.Text;
21 import org.eclipse.ui.IWorkbenchPart;
22 import org.eclipse.ui.views.properties.IPropertySource;
23 import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
24 import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
25 import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
26 import org.eclipse.jface.util.Assert;
27
28 import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImage;
29 import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImageParameter;
30
31 public class DigiImagePropertySection extends AbstractPropertySection {
32
33 private DigiImage digiImage;
34 private Map<String,Text> texts = new HashMap<String,Text>();
35
36
37 private Map<String,ModifyListener> listeners = new HashMap<String,ModifyListener>();
38 private Button button;
39
40
41
42
43
44
45 public void createControls(Composite parent,
46 TabbedPropertySheetPage aTabbedPropertySheetPage) {
47 super.createControls(parent, aTabbedPropertySheetPage);
48
49 DigiImageParameter dp = new DigiImageParameter("");
50 GridLayout gridLayout = new GridLayout(1,false);
51 parent.setLayout(gridLayout);
52 for (String key: dp.createMapFromParameters(null).keySet()){
53
54 Composite composite = getWidgetFactory()
55 .createFlatFormComposite(parent);
56 FormData data;
57
58 Text t = getWidgetFactory().createText(composite, "");
59 texts.put(key, t);
60 data = new FormData();
61 data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH);
62 data.right = new FormAttachment(100, 0);
63 data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
64 t.setLayoutData(data);
65
66
67 CLabel labelLabel = getWidgetFactory()
68 .createCLabel(composite, key); //$NON-NLS-1$
69 data = new FormData();
70 data.left = new FormAttachment(0, 0);
71 data.right = new FormAttachment(t,
72 -ITabbedPropertyConstants.HSPACE);
73 data.top = new FormAttachment(t, 0, SWT.CENTER);
74 labelLabel.setLayoutData(data);
75 }
76 Composite composite = getWidgetFactory()
77 .createFlatFormComposite(parent);
78 button = getWidgetFactory().createButton(composite, "redraw", SWT.None);
79
80 }
81
82 public void setInput(IWorkbenchPart part, ISelection selection) {
83 super.setInput(part, selection);
84
85 Assert.isTrue(selection instanceof IStructuredSelection);
86 Object input = ((IStructuredSelection) selection).getFirstElement();
87 Assert.isTrue(input instanceof DigiImage);
88 this.digiImage = (DigiImage) input;
89
90 Map<String, String> pms = digiImage.getParameter().createMapFromParameters(null);
91
92 for(String key: digiImage.getParameter().createMapFromParameters(null).keySet()){
93
94
95 ModifyListener listener = new PropertyListener(key,digiImage);
96
97 texts.get(key).addModifyListener(listener);
98 listeners.put(key, listener);
99 }
100 button.addMouseListener(new RedrawButtonListener(digiImage,texts));
101
102 }
103
104 public void refresh() {
105
106 DigiImageProperties properties = (DigiImageProperties) digiImage
107 .getAdapter(IPropertySource.class);
108
109 for(String key: texts.keySet()){
110
111 Text labelText=texts.get(key);
112 labelText.removeModifyListener(listeners.get(key));
113
114 labelText.setText((String)properties.getPropertyValue(key));
115 labelText.addModifyListener(listeners.get(key));
116
117 }
118 super.refresh();
119 }
120
121 @Override
122 public void aboutToBeShown() {
123 System.out.println("about to be shown");
124
125
126 super.aboutToBeShown();
127 }
128 }