diff options
3 files changed, 47 insertions, 37 deletions
diff --git a/src/main/java/org/cristalise/gui/tabs/outcome/form/DataRecord.java b/src/main/java/org/cristalise/gui/tabs/outcome/form/DataRecord.java index 32070ca..881645b 100644 --- a/src/main/java/org/cristalise/gui/tabs/outcome/form/DataRecord.java +++ b/src/main/java/org/cristalise/gui/tabs/outcome/form/DataRecord.java @@ -105,42 +105,13 @@ public class DataRecord extends OutcomeStructure implements ChangeListener { else {
DRPanel = null;// have to make a new tabbed pane now
deferChild = false;
- if (newElement instanceof Field) {
- Field newField = (Field)newElement;
- // make some nice columns
- position.gridwidth=1;
- position.gridy++;
- position.gridx=0;
- position.weightx=2;
- position.weighty=0;
- position.fill=GridBagConstraints.NONE;
- gridbag.setConstraints(newField.getLabel(), position);
- this.add(newField.getLabel());
- position.gridy++;
- position.weighty=1;
- position.fill = GridBagConstraints.HORIZONTAL;
- gridbag.setConstraints(newField.getCData(), position);
- this.add(newField.getCData());
- position.gridx++;
- position.gridy--;
- position.gridheight=2;
- position.weightx=0;
- position.fill=GridBagConstraints.NONE;
- gridbag.setConstraints(newField.getAttributes(), position);
- this.add(newField.getAttributes());
- position.gridx=0;
- position.gridheight=1;
- position.gridy++;
- }
- else {
- position.fill=GridBagConstraints.HORIZONTAL;
- position.gridwidth=3;
- position.weightx=1.0;
- position.gridy++;
- position.weighty=1.0;
- gridbag.setConstraints(newElement, position);
- add(newElement);
- }
+ position.fill=GridBagConstraints.HORIZONTAL;
+ position.gridwidth=3;
+ position.weightx=1.0;
+ position.gridy++;
+ position.weighty=1.0;
+ gridbag.setConstraints(newElement, position);
+ add(newElement);
}
}
diff --git a/src/main/java/org/cristalise/gui/tabs/outcome/form/Field.java b/src/main/java/org/cristalise/gui/tabs/outcome/form/Field.java index 9a043d1..da310ba 100644 --- a/src/main/java/org/cristalise/gui/tabs/outcome/form/Field.java +++ b/src/main/java/org/cristalise/gui/tabs/outcome/form/Field.java @@ -1,5 +1,8 @@ package org.cristalise.gui.tabs.outcome.form;
import java.awt.Component;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
import javax.swing.JComponent;
import javax.swing.JLabel;
@@ -42,6 +45,37 @@ public class Field extends OutcomeStructure { tagName = new JLabel(model.getName());
tagName.setVerticalAlignment(SwingConstants.BOTTOM);
+ setupPanel();
+ }
+
+ private void setupPanel() {
+ GridBagLayout gridbag = new java.awt.GridBagLayout();
+ setLayout(gridbag);
+ GridBagConstraints position = new GridBagConstraints();
+ position.anchor = GridBagConstraints.NORTHWEST;
+ position.ipadx = 5; position.ipady = 5;
+ position.insets = new Insets(5,5,0,0);
+ position.gridwidth=1;
+ position.gridy=0; position.gridx=0;
+ position.weightx=2; position.weighty=0;
+ position.fill=GridBagConstraints.NONE;
+ gridbag.setConstraints(getLabel(), position);
+ this.add(getLabel());
+ position.gridy++;
+ position.weighty=1;
+ position.fill = GridBagConstraints.HORIZONTAL;
+ gridbag.setConstraints(getCData(), position);
+ this.add(getCData());
+ position.gridx++;
+ position.gridy--;
+ position.gridheight=2;
+ position.weightx=0;
+ position.fill=GridBagConstraints.NONE;
+ gridbag.setConstraints(getAttributes(), position);
+ this.add(getAttributes());
+ position.gridx=0;
+ position.gridheight=1;
+ position.gridy++;
}
public JComponent getLabel() {
diff --git a/src/main/java/org/cristalise/gui/tabs/outcome/form/OutcomePanel.java b/src/main/java/org/cristalise/gui/tabs/outcome/form/OutcomePanel.java index e3f4622..cf2ed0e 100644 --- a/src/main/java/org/cristalise/gui/tabs/outcome/form/OutcomePanel.java +++ b/src/main/java/org/cristalise/gui/tabs/outcome/form/OutcomePanel.java @@ -28,6 +28,7 @@ import org.cristalise.gui.tabs.outcome.OutcomeNotInitialisedException; import org.cristalise.kernel.persistency.outcome.Outcome;
import org.cristalise.kernel.utils.FileStringUtility;
import org.cristalise.kernel.utils.Logger;
+import org.exolab.castor.xml.schema.ComplexType;
import org.exolab.castor.xml.schema.ElementDecl;
import org.exolab.castor.xml.schema.Schema;
import org.exolab.castor.xml.schema.reader.SchemaReader;
@@ -283,7 +284,11 @@ public class OutcomePanel extends JPanel implements OutcomeHandler if (rootElementDecl == null)
throw new InvalidSchemaException("No root elements defined");
- documentRoot = new DataRecord(rootElementDecl, readOnly, help, false);
+
+ if (rootElementDecl.getType().isSimpleType() || ((ComplexType)rootElementDecl.getType()).isSimpleContent())
+ documentRoot = new Field(rootElementDecl, readOnly, help);
+ else
+ documentRoot = new DataRecord(rootElementDecl, readOnly, help, false);
Logger.msg(5, "Finished structure. Populating...");
if (docElement == null)
|
