1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 package org.ximtec.igesture.tool.view.admin.panel;
27
28 import java.awt.BorderLayout;
29 import java.awt.Color;
30 import java.util.List;
31
32 import javax.swing.BorderFactory;
33 import javax.swing.ImageIcon;
34 import javax.swing.JLabel;
35 import javax.swing.JPanel;
36 import javax.swing.JTextField;
37
38 import org.sigtec.ink.Note;
39 import org.ximtec.igesture.core.Descriptor;
40 import org.ximtec.igesture.core.Gesture;
41 import org.ximtec.igesture.core.GestureClass;
42 import org.ximtec.igesture.core.SampleDescriptor;
43 import org.ximtec.igesture.core.SampleDescriptor3D;
44 import org.ximtec.igesture.core.composite.CompositeDescriptor;
45 import org.ximtec.igesture.core.composite.Constraint;
46 import org.ximtec.igesture.tool.GestureConstants;
47 import org.ximtec.igesture.tool.binding.BindingFactory;
48 import org.ximtec.igesture.tool.core.Controller;
49 import org.ximtec.igesture.tool.util.ComponentFactory;
50 import org.ximtec.igesture.tool.util.FormBuilder;
51 import org.ximtec.igesture.tool.util.TitleFactory;
52 import org.ximtec.igesture.tool.view.AbstractPanel;
53 import org.ximtec.igesture.util.GestureTool;
54 import org.ximtec.igesture.util.additions3d.RecordedGesture3D;
55
56 public class GestureClassPanel extends AbstractPanel {
57
58 private GestureClass gestureClass;
59
60 public GestureClassPanel(Controller controller, GestureClass gestureClass) {
61 super(controller);
62
63 this.gestureClass = gestureClass;
64
65 setTitle(TitleFactory.createDynamicTitle(gestureClass,
66 GestureClass.PROPERTY_NAME));
67
68 JPanel panel = createHeaderPanel();
69
70 JPanel basePanel = ComponentFactory.createBorderLayoutPanel();
71 basePanel.add(panel, BorderLayout.NORTH);
72
73 setContent(basePanel);
74
75 }
76
77
78
79 private JPanel createHeaderPanel(){
80
81 FormBuilder formBuilder = new FormBuilder();
82
83 JLabel labelName = getComponentFactory().createLabel(GestureConstants.GESTURE_CLASS_PANEL_NAME);
84 formBuilder.addLeft(labelName);
85
86 JTextField textField = new JTextField();
87
88 BindingFactory.createInstance(textField, gestureClass, GestureClass.PROPERTY_NAME);
89 formBuilder.addRight(textField);
90
91 formBuilder.nextLine();
92
93 JLabel labelNod = getComponentFactory().createLabel(GestureConstants.GESTURE_CLASS_PANEL_NOD);
94 JLabel labelNodValue = new JLabel(Integer.toString(gestureClass.getDescriptors().size()));
95
96 formBuilder.addLeft(labelNod);
97 formBuilder.addRight(labelNodValue);
98
99 formBuilder.nextLine();
100
101 for (Descriptor descriptor : gestureClass.getDescriptors()) {
102 JLabel labelDescriptorName = getComponentFactory().createLabel(GestureConstants.GESTURE_CLASS_PANEL_DESCRIPTOR_NAME);
103 JLabel labelDescriptorNameValue = new JLabel(descriptor.getType().getName());
104
105 formBuilder.addLeft(labelDescriptorName);
106 formBuilder.addRight(labelDescriptorNameValue);
107
108 formBuilder.nextLine();
109 }
110
111 if (gestureClass.hasDescriptor(SampleDescriptor.class)) {
112 Gesture<Note> sample = null;
113
114 SampleDescriptor descriptor = gestureClass.getDescriptor(SampleDescriptor.class);
115 List<Gesture<Note>> samples = descriptor.getSamples();
116
117 if (samples.size() > 0) {
118 sample = descriptor.getSample(0);
119 }
120
121 if (sample != null) {
122 JLabel label = new JLabel(new ImageIcon(GestureTool.createNoteImage(
123 sample.getGesture(), 150, 150)));
124 label.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY, 1));
125 formBuilder.addRight(label);
126 } else {
127 formBuilder.addRight(getComponentFactory().createLabel(
128 GestureConstants.GESTURE_CLASS_PANEL_NSA));
129 }
130 }
131 else if(gestureClass.hasDescriptor(SampleDescriptor3D.class))
132 {
133 Gesture<RecordedGesture3D> sample = null;
134
135 SampleDescriptor3D descriptor = gestureClass.getDescriptor(SampleDescriptor3D.class);
136 List<Gesture<RecordedGesture3D>> samples = descriptor.getSamples();
137
138 if(samples.size() > 0)
139 sample = descriptor.getSample(0);
140
141 if(sample != null)
142 {
143 JLabel label = new JLabel(new ImageIcon(GestureTool.createRecordedGesture3DImage(
144 sample.getGesture(), 150, 150)));
145 label.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY, 1));
146 formBuilder.addRight(label);
147 }
148 else
149 {
150 formBuilder.addRight(getComponentFactory().createLabel(
151 GestureConstants.GESTURE_CLASS_PANEL_NSA));
152 }
153 }
154 else if(gestureClass.hasDescriptor(CompositeDescriptor.class))
155 {
156 Constraint constraint = null;
157
158 CompositeDescriptor descriptor = gestureClass.getDescriptor(CompositeDescriptor.class);
159 constraint = descriptor.getConstraint();
160
161 if(constraint != null)
162 {
163 JLabel label = new JLabel(new ImageIcon(GestureTool.createCompositeImage(constraint,150,150)));
164 label.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY, 1));
165 formBuilder.addRight(label);
166 }
167 else
168 {
169 formBuilder.addRight(getComponentFactory().createLabel(
170 GestureConstants.GESTURE_CLASS_PANEL_NCA));
171 }
172
173
174 }
175
176 return formBuilder.getPanel();
177 }
178
179 @Override
180 protected void refreshUILogic() {
181
182
183 }
184
185
186
187 }