Mercurial > hg > de.mpg.mpiwg.itgroup.digilib.core
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 } |