Skip to content

Commit 0b58700

Browse files
committed
Fixes the sizes when the field name or the type is too long
1 parent 70b2346 commit 0b58700

File tree

3 files changed

+24
-50
lines changed

3 files changed

+24
-50
lines changed

sdk/consumer-test-tool/src/main/java/esa/mo/nmf/ctt/windows/element/Entry.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.lang.reflect.Field;
2424
import java.util.logging.Level;
2525
import java.util.logging.Logger;
26+
import javax.swing.BoxLayout;
2627
import javax.swing.JLabel;
2728
import org.ccsds.moims.mo.mal.helpertools.helpers.HelperAttributes;
2829
import org.ccsds.moims.mo.mal.structures.Union;
@@ -39,6 +40,7 @@ public abstract class Entry extends javax.swing.JPanel {
3940
@SuppressWarnings("unchecked")
4041
public Entry(String fieldName, Object obj, boolean editable, boolean objIsNull) {
4142
initComponents();
43+
this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
4244

4345
this.fieldName.setText(fieldName);
4446
String className = "--";

sdk/consumer-test-tool/src/main/java/esa/mo/nmf/ctt/windows/element/FieldsHandler.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,8 @@ private static Object generateFieldObjectFromField(Object rawObj, Field field) {
125125
| InvocationTargetException
126126
| IllegalArgumentException
127127
| IllegalAccessException ex) {
128-
Logger.getLogger(MOWindow.class.getName()).log(Level.SEVERE, null, ex);
128+
Logger.getLogger(MOWindow.class.getName()).log(Level.SEVERE,
129+
"Could not instantiate a new Object for class: " + constructor.getName(), ex);
129130
}
130131
}
131132

@@ -147,12 +148,18 @@ private static Object generateFieldObjectFromField(Object rawObj, Field field) {
147148
return HelperAttributes.javaType2Attribute(constructor.newInstance((byte) 1));
148149
}
149150

150-
return HelperAttributes.javaType2Attribute(constructor.newInstance(1));
151+
if (name.equals("java.lang.Long")) {
152+
return HelperAttributes.javaType2Attribute(0L);
153+
}
154+
155+
Object newObj = constructor.newInstance(1);
156+
return HelperAttributes.javaType2Attribute(newObj);
151157
} catch (InstantiationException
152158
| InvocationTargetException
153159
| IllegalArgumentException
154160
| IllegalAccessException ex) {
155-
Logger.getLogger(MOWindow.class.getName()).log(Level.SEVERE, null, ex);
161+
Logger.getLogger(MOWindow.class.getName()).log(Level.SEVERE,
162+
"Could not instantiate a new Object for class: " + name, ex);
156163
}
157164
}
158165

sdk/consumer-test-tool/src/main/java/esa/mo/nmf/ctt/windows/element/MOWindow.java

Lines changed: 12 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public MOWindow(Object obj, boolean editable, String title) {
7373
initComponents();
7474
this.setLocationRelativeTo(null);
7575
this.setModal(true);
76-
componentsPanel.setLayout(new BoxLayout(componentsPanel, BoxLayout.PAGE_AXIS));
76+
componentsPanel.setLayout(new BoxLayout(componentsPanel, BoxLayout.Y_AXIS));
7777

7878
if (title != null && !title.trim().isEmpty()) {
7979
this.setTitle(title);
@@ -120,15 +120,19 @@ public MOWindow(Object obj, boolean editable, String title) {
120120
}
121121

122122
private void interpretReceivedObj(Object obj, boolean editable) {
123-
// Is the object a List?
124-
if (obj instanceof ElementList) {
123+
if (obj instanceof ElementList) { // Is the object a List?
125124
ElementList list = (ElementList) obj;
126125

127126
for (int i = 0; i < list.size(); i++) {
128127
String fieldName = String.valueOf(componentsPanel.getComponentCount());
128+
boolean isNull = (list.get(i) == null);
129129

130-
if (!(list.get(i) instanceof Element)) {
131-
if (list.get(i) == null) {
130+
if (list.get(i) instanceof Element) {
131+
ListEntry moElementList = new ListEntry(this,
132+
fieldName, list.get(i), editable, isNull);
133+
componentsPanel.add(moElementList);
134+
} else {
135+
if (isNull) {
132136
try {
133137
Element something = MALElementsRegistry.elementToElementList(list);
134138
ListEntry moElementList = new ListEntry(this,
@@ -138,19 +142,12 @@ private void interpretReceivedObj(Object obj, boolean editable) {
138142
Logger.getLogger(MOWindow.class.getName()).log(Level.SEVERE, null, ex);
139143
}
140144
} else {
141-
ListEntry moElementList = new ListEntry(this,
142-
fieldName,
145+
ListEntry moElementList = new ListEntry(this, fieldName,
143146
FieldsHandler.filterRawObject(list.get(i)), editable,
144-
(list.get(i) == null));
147+
isNull);
145148
componentsPanel.add(moElementList);
146149
}
147-
} else {
148-
ListEntry moElementList = new ListEntry(this,
149-
fieldName,
150-
list.get(i), editable, (list.get(i) == null));
151-
componentsPanel.add(moElementList);
152150
}
153-
154151
}
155152

156153
java.awt.event.ActionListener actionListener = this::buttonAddActionPerformed;
@@ -237,7 +234,7 @@ public void refreshHorizontalSize() {
237234
String paramType = entry.getFieldTypeString();
238235

239236
// Calculate the size we want...
240-
int horizontalSize = paramType.length() * 8 + 450;
237+
int horizontalSize = paramType.length() * 12 + 450;
241238

242239
// Is the value greater than the current one?
243240
if (horizontalSize > this.getWidth()) {
@@ -247,38 +244,6 @@ public void refreshHorizontalSize() {
247244

248245
this.validate();
249246
this.repaint();
250-
/*
251-
double maxFieldName = 0;
252-
double maxFieldType = 0;
253-
254-
for (int i = 0; i < componentsPanel.getComponentCount(); i++) {
255-
Entry entry = (Entry) componentsPanel.getComponent(i);
256-
double width1 = entry.getFieldName().getSize().getWidth();
257-
maxFieldName = (width1 > maxFieldName) ? width1 : maxFieldName;
258-
259-
double width2 = entry.getFieldType().getSize().getWidth();
260-
maxFieldType = (width2 > maxFieldType) ? width2 : maxFieldType;
261-
}
262-
263-
for (int i = 0; i < componentsPanel.getComponentCount(); i++) {
264-
Entry entry = (Entry) componentsPanel.getComponent(i);
265-
266-
Dimension dimName = entry.getFieldName().getSize();
267-
Dimension newDimName = new Dimension();
268-
newDimName.setSize(maxFieldName, dimName.getHeight());
269-
entry.getFieldName().setPreferredSize(newDimName);
270-
entry.getFieldName().setSize(newDimName);
271-
272-
Dimension dimType = entry.getFieldType().getSize();
273-
Dimension newDimType = new Dimension();
274-
newDimType.setSize(maxFieldType, dimType.getHeight());
275-
entry.getFieldType().setPreferredSize(newDimType);
276-
entry.getFieldType().setSize(newDimType);
277-
}
278-
279-
this.validate();
280-
this.repaint();
281-
*/
282247
}
283248

284249
public javax.swing.JPanel getComponentsPanel() {

0 commit comments

Comments
 (0)