From: Daniel Kirschten Date: Tue, 12 May 2020 19:32:53 +0000 (+0200) Subject: Added the possibility for having machine descriptions X-Git-Url: https://mograsim.net/gitweb/?p=Mograsim.git;a=commitdiff_plain;h=cc800d982ab9fe3e7d026655847a2160e34a5f8e Added the possibility for having machine descriptions --- diff --git a/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/AbstractAm2900MachineDefinition.java b/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/AbstractAm2900MachineDefinition.java index 7096cd72..da843922 100644 --- a/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/AbstractAm2900MachineDefinition.java +++ b/plugins/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/AbstractAm2900MachineDefinition.java @@ -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 unsortedRegisters; public static final List 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() { diff --git a/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineDefinition.java b/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineDefinition.java index 18e628f5..b568e7e0 100644 --- a/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineDefinition.java +++ b/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineDefinition.java @@ -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 * diff --git a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/nature/properties/MograsimNaturePropertyPage.java b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/nature/properties/MograsimNaturePropertyPage.java index bffceac4..c51aa01a 100644 --- a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/nature/properties/MograsimNaturePropertyPage.java +++ b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/nature/properties/MograsimNaturePropertyPage.java @@ -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 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; diff --git a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/wizards/newWizards/MograsimSettingsPage.java b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/wizards/newWizards/MograsimSettingsPage.java index 390cefba..f360d50f 100644 --- a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/wizards/newWizards/MograsimSettingsPage.java +++ b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/wizards/newWizards/MograsimSettingsPage.java @@ -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()