Added the possibility for having machine descriptions
authorDaniel Kirschten <daniel.kirschten@gmx.de>
Tue, 12 May 2020 19:32:53 +0000 (21:32 +0200)
committerDaniel Kirschten <daniel.kirschten@gmx.de>
Tue, 12 May 2020 19:32:53 +0000 (21:32 +0200)
plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/AbstractAm2900MachineDefinition.java
plugins/net.mograsim.machine/src/net/mograsim/machine/MachineDefinition.java
plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/nature/properties/MograsimNaturePropertyPage.java
plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/wizards/newWizards/MograsimSettingsPage.java

index 7096cd7..da84392 100644 (file)
@@ -22,6 +22,8 @@ public class AbstractAm2900MachineDefinition implements MachineDefinition
 {
        public static final String SIMPLE_AM2900_MACHINE_ID = "Am2900Simple";
        public static final String STRICT_AM2900_MACHINE_ID = "Am2900Strict";
+       public static final String SIMPLE_AM2900_DESCRIPTION = "Am2900Simple\nTODO Description";
+       public static final String STRICT_AM2900_DESCRIPTION = "Am2900Strict\nTODO Description";
 
        public static final List<Register> unsortedRegisters;
        public static final List<RegisterGroup> registerGroups;
@@ -53,6 +55,12 @@ public class AbstractAm2900MachineDefinition implements MachineDefinition
                return strict ? STRICT_AM2900_MACHINE_ID : SIMPLE_AM2900_MACHINE_ID;
        }
 
+       @Override
+       public String getDescription()
+       {
+               return strict ? STRICT_AM2900_DESCRIPTION : SIMPLE_AM2900_DESCRIPTION;
+       }
+
        @Override
        public Am2900Machine createNew()
        {
index 18e628f..b568e7e 100644 (file)
@@ -17,6 +17,13 @@ public interface MachineDefinition
         */
        String getId();
 
+       /**
+        * Returns a human-readable description of the machine definition.
+        * 
+        * @author Daniel Kirschten
+        */
+       String getDescription();
+
        /**
         * Creates a new instance of the machine
         * 
index bffceac..c51aa01 100644 (file)
@@ -27,6 +27,7 @@ public class MograsimNaturePropertyPage extends PropertyPage
        private static final String DEFAULT_MACHINE = "Am2900Simple";// TODO don't hardcode that here!
 
        private MachineCombo machineSelect;
+       private Label machineDescription;
        private MachineDefinition defaultMachineDefinition;
 
        private MachineContext machineContext;
@@ -41,7 +42,7 @@ public class MograsimNaturePropertyPage extends PropertyPage
 
        private void addFirstSection(Composite parent)
        {
-               Composite composite = createDefaultComposite(parent);
+               Composite composite = createDefaultComposite(parent, false);
 
                // Label for path field
                Label pathLabel = new Label(composite, SWT.NONE);
@@ -59,7 +60,7 @@ public class MograsimNaturePropertyPage extends PropertyPage
 
        private void addSecondSection(Composite parent)
        {
-               Composite composite = createDefaultComposite(parent);
+               Composite composite = createDefaultComposite(parent, true);
 
                // Label for machine
                Label ownerLabel = new Label(composite, SWT.NONE);
@@ -68,8 +69,9 @@ public class MograsimNaturePropertyPage extends PropertyPage
                // Machine choice
                machineSelect = MachineContextSwtTools.createMachineSelector(composite, SWT.NONE);
 
-               if (currentId.isPresent())
-                       machineSelect.add(currentId.get());
+               machineDescription = new Label(composite, SWT.NONE);
+               machineSelect.addListener(md -> machineDescription.setText(md.getDescription()));
+               machineDescription.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
 
                Optional<MachineDefinition> currentMachineDefinition = machineContext.getMachineDefinition();
 
@@ -99,7 +101,7 @@ public class MograsimNaturePropertyPage extends PropertyPage
                return composite;
        }
 
-       private Composite createDefaultComposite(Composite parent)
+       private Composite createDefaultComposite(Composite parent, boolean grabExcessVerticalSpace)
        {
                Composite composite = new Composite(parent, SWT.NULL);
                GridLayout layout = new GridLayout();
@@ -109,6 +111,8 @@ public class MograsimNaturePropertyPage extends PropertyPage
                GridData data = new GridData();
                data.verticalAlignment = GridData.FILL;
                data.horizontalAlignment = GridData.FILL;
+               data.grabExcessHorizontalSpace = true;
+               data.grabExcessVerticalSpace = grabExcessVerticalSpace;
                composite.setLayoutData(data);
 
                return composite;
index 390cefb..f360d50 100644 (file)
@@ -15,6 +15,7 @@ import net.mograsim.plugin.nature.MachineContextSwtTools.MachineCombo;
 public class MograsimSettingsPage extends WizardPage
 {
        private MachineCombo machineSelect;
+       private Label machineDescription;
 
        public MograsimSettingsPage(IStructuredSelection selection)
        {
@@ -49,7 +50,7 @@ public class MograsimSettingsPage extends WizardPage
 
        private void addFirstSection(Composite parent)
        {
-               Composite composite = createDefaultComposite(parent);
+               Composite composite = createDefaultComposite(parent, false);
 
                // Label for path field
                Label pathLabel = new Label(composite, SWT.NONE);
@@ -65,7 +66,7 @@ public class MograsimSettingsPage extends WizardPage
                separator.setLayoutData(gridData);
        }
 
-       private Composite createDefaultComposite(Composite parent)
+       private Composite createDefaultComposite(Composite parent, boolean grabExcessVerticalSpace)
        {
                Composite composite = new Composite(parent, SWT.NULL);
                GridLayout layout = new GridLayout();
@@ -75,6 +76,8 @@ public class MograsimSettingsPage extends WizardPage
                GridData data = new GridData();
                data.verticalAlignment = GridData.FILL;
                data.horizontalAlignment = GridData.FILL;
+               data.grabExcessHorizontalSpace = true;
+               data.grabExcessVerticalSpace = grabExcessVerticalSpace;
                composite.setLayoutData(data);
 
                return composite;
@@ -82,7 +85,7 @@ public class MograsimSettingsPage extends WizardPage
 
        private void addSecondSection(Composite parent)
        {
-               Composite composite = createDefaultComposite(parent);
+               Composite composite = createDefaultComposite(parent, true);
 
                // Label for machine
                Label ownerLabel = new Label(composite, SWT.NONE);
@@ -91,8 +94,10 @@ public class MograsimSettingsPage extends WizardPage
                // Machine choice
                machineSelect = MachineContextSwtTools.createMachineSelector(composite, SWT.NONE);
                machineSelect.addListener(md -> setPageComplete(isValid()));
-               GridData gd = new GridData();
-//             machineSelect.setLayoutData(gd);
+
+               machineDescription = new Label(composite, SWT.NONE);
+               machineSelect.addListener(md -> machineDescription.setText(md.getDescription()));
+               machineDescription.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
        }
 
        public boolean isValid()