annotate src/de/mpg/mpiwg/itgroup/digilib/digiImage/properties/DigiImagePropertySection.java @ 26:183c3e96f6c3

cleaned code
author dwinter
date Mon, 10 Jan 2011 12:01:25 +0100
parents 6e7bb3467531
children fbcf122a6a24
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25
6e7bb3467531 new property view
dwinter
parents:
diff changeset
1 package de.mpg.mpiwg.itgroup.digilib.digiImage.properties;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
2
6e7bb3467531 new property view
dwinter
parents:
diff changeset
3 import java.util.HashMap;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
4 import java.util.Map;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
5
6e7bb3467531 new property view
dwinter
parents:
diff changeset
6 import org.eclipse.jface.viewers.ISelection;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
7 import org.eclipse.jface.viewers.IStructuredSelection;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
8 import org.eclipse.swt.SWT;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
9 import org.eclipse.swt.custom.CLabel;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
10 import org.eclipse.swt.events.ModifyListener;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
11 import org.eclipse.swt.layout.FormAttachment;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
12 import org.eclipse.swt.layout.FormData;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
13 import org.eclipse.swt.layout.GridLayout;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
14 import org.eclipse.swt.widgets.Button;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
15 import org.eclipse.swt.widgets.Composite;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
16 import org.eclipse.swt.widgets.Text;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
17 import org.eclipse.ui.IWorkbenchPart;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
18 import org.eclipse.ui.views.properties.IPropertySource;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
19 import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
20 import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
21 import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
22
6e7bb3467531 new property view
dwinter
parents:
diff changeset
23 import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImage;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
24 import de.mpg.mpiwg.itgroup.digilib.digiImage.DigiImageParameter;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
25
26
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
26 /**
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
27 * @author dwinter
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
28 * Shows the properties of a digiImage
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
29 *
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
30 */
25
6e7bb3467531 new property view
dwinter
parents:
diff changeset
31 public class DigiImagePropertySection extends AbstractPropertySection {
6e7bb3467531 new property view
dwinter
parents:
diff changeset
32
6e7bb3467531 new property view
dwinter
parents:
diff changeset
33 private DigiImage digiImage;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
34 private Map<String,Text> texts = new HashMap<String,Text>();
6e7bb3467531 new property view
dwinter
parents:
diff changeset
35
6e7bb3467531 new property view
dwinter
parents:
diff changeset
36
6e7bb3467531 new property view
dwinter
parents:
diff changeset
37 private Map<String,ModifyListener> listeners = new HashMap<String,ModifyListener>();
6e7bb3467531 new property view
dwinter
parents:
diff changeset
38 private Button button;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
39
26
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
40
25
6e7bb3467531 new property view
dwinter
parents:
diff changeset
41
26
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
42 /* (non-Javadoc)
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
43 * @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
44 */
25
6e7bb3467531 new property view
dwinter
parents:
diff changeset
45 public void createControls(Composite parent,
6e7bb3467531 new property view
dwinter
parents:
diff changeset
46 TabbedPropertySheetPage aTabbedPropertySheetPage) {
6e7bb3467531 new property view
dwinter
parents:
diff changeset
47 super.createControls(parent, aTabbedPropertySheetPage);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
48
6e7bb3467531 new property view
dwinter
parents:
diff changeset
49 DigiImageParameter dp = new DigiImageParameter("");
6e7bb3467531 new property view
dwinter
parents:
diff changeset
50 GridLayout gridLayout = new GridLayout(1,false);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
51 parent.setLayout(gridLayout);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
52 for (String key: dp.createMapFromParameters(null).keySet()){
6e7bb3467531 new property view
dwinter
parents:
diff changeset
53
6e7bb3467531 new property view
dwinter
parents:
diff changeset
54 Composite composite = getWidgetFactory()
6e7bb3467531 new property view
dwinter
parents:
diff changeset
55 .createFlatFormComposite(parent);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
56 FormData data;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
57
6e7bb3467531 new property view
dwinter
parents:
diff changeset
58 Text t = getWidgetFactory().createText(composite, "");
6e7bb3467531 new property view
dwinter
parents:
diff changeset
59 texts.put(key, t);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
60 data = new FormData();
6e7bb3467531 new property view
dwinter
parents:
diff changeset
61 data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
62 data.right = new FormAttachment(100, 0);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
63 data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
64 t.setLayoutData(data);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
65
6e7bb3467531 new property view
dwinter
parents:
diff changeset
66
6e7bb3467531 new property view
dwinter
parents:
diff changeset
67 CLabel labelLabel = getWidgetFactory()
6e7bb3467531 new property view
dwinter
parents:
diff changeset
68 .createCLabel(composite, key); //$NON-NLS-1$
6e7bb3467531 new property view
dwinter
parents:
diff changeset
69 data = new FormData();
6e7bb3467531 new property view
dwinter
parents:
diff changeset
70 data.left = new FormAttachment(0, 0);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
71 data.right = new FormAttachment(t,
6e7bb3467531 new property view
dwinter
parents:
diff changeset
72 -ITabbedPropertyConstants.HSPACE);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
73 data.top = new FormAttachment(t, 0, SWT.CENTER);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
74 labelLabel.setLayoutData(data);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
75 }
6e7bb3467531 new property view
dwinter
parents:
diff changeset
76 Composite composite = getWidgetFactory()
6e7bb3467531 new property view
dwinter
parents:
diff changeset
77 .createFlatFormComposite(parent);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
78 button = getWidgetFactory().createButton(composite, "redraw", SWT.None);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
79
6e7bb3467531 new property view
dwinter
parents:
diff changeset
80 }
6e7bb3467531 new property view
dwinter
parents:
diff changeset
81
26
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
82 /* (non-Javadoc)
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
83 * @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#setInput(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
84 */
25
6e7bb3467531 new property view
dwinter
parents:
diff changeset
85 public void setInput(IWorkbenchPart part, ISelection selection) {
6e7bb3467531 new property view
dwinter
parents:
diff changeset
86 super.setInput(part, selection);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
87
26
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
88 //Assert.isTrue(selection instanceof IStructuredSelection);
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
89 assert (IStructuredSelection.class.isInstance(selection)==true) : "wrong instance type";
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
90
25
6e7bb3467531 new property view
dwinter
parents:
diff changeset
91 Object input = ((IStructuredSelection) selection).getFirstElement();
26
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
92 //Assert.isTrue(input instanceof DigiImage);
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
93
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
94 assert (DigiImage.class.isInstance(input)==true) : "wrong instance type for input";
25
6e7bb3467531 new property view
dwinter
parents:
diff changeset
95 this.digiImage = (DigiImage) input;
6e7bb3467531 new property view
dwinter
parents:
diff changeset
96
26
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
97 //Map<String, String> pms = digiImage.getParameter().createMapFromParameters(null);
25
6e7bb3467531 new property view
dwinter
parents:
diff changeset
98
6e7bb3467531 new property view
dwinter
parents:
diff changeset
99 for(String key: digiImage.getParameter().createMapFromParameters(null).keySet()){
6e7bb3467531 new property view
dwinter
parents:
diff changeset
100
6e7bb3467531 new property view
dwinter
parents:
diff changeset
101
26
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
102 ModifyListener listener = new DigiImagePropertyListener(key,digiImage);
25
6e7bb3467531 new property view
dwinter
parents:
diff changeset
103
6e7bb3467531 new property view
dwinter
parents:
diff changeset
104 texts.get(key).addModifyListener(listener);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
105 listeners.put(key, listener);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
106 }
6e7bb3467531 new property view
dwinter
parents:
diff changeset
107 button.addMouseListener(new RedrawButtonListener(digiImage,texts));
6e7bb3467531 new property view
dwinter
parents:
diff changeset
108
6e7bb3467531 new property view
dwinter
parents:
diff changeset
109 }
6e7bb3467531 new property view
dwinter
parents:
diff changeset
110
26
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
111 /* (non-Javadoc)
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
112 * @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#refresh()
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
113 */
25
6e7bb3467531 new property view
dwinter
parents:
diff changeset
114 public void refresh() {
6e7bb3467531 new property view
dwinter
parents:
diff changeset
115
6e7bb3467531 new property view
dwinter
parents:
diff changeset
116 DigiImageProperties properties = (DigiImageProperties) digiImage
6e7bb3467531 new property view
dwinter
parents:
diff changeset
117 .getAdapter(IPropertySource.class);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
118
6e7bb3467531 new property view
dwinter
parents:
diff changeset
119 for(String key: texts.keySet()){
6e7bb3467531 new property view
dwinter
parents:
diff changeset
120
6e7bb3467531 new property view
dwinter
parents:
diff changeset
121 Text labelText=texts.get(key);
6e7bb3467531 new property view
dwinter
parents:
diff changeset
122 labelText.removeModifyListener(listeners.get(key));
6e7bb3467531 new property view
dwinter
parents:
diff changeset
123
6e7bb3467531 new property view
dwinter
parents:
diff changeset
124 labelText.setText((String)properties.getPropertyValue(key));
6e7bb3467531 new property view
dwinter
parents:
diff changeset
125 labelText.addModifyListener(listeners.get(key));
6e7bb3467531 new property view
dwinter
parents:
diff changeset
126
6e7bb3467531 new property view
dwinter
parents:
diff changeset
127 }
6e7bb3467531 new property view
dwinter
parents:
diff changeset
128 super.refresh();
6e7bb3467531 new property view
dwinter
parents:
diff changeset
129 }
6e7bb3467531 new property view
dwinter
parents:
diff changeset
130
26
183c3e96f6c3 cleaned code
dwinter
parents: 25
diff changeset
131
25
6e7bb3467531 new property view
dwinter
parents:
diff changeset
132 }