X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.plugin.core%2Fsrc%2Fnet%2Fmograsim%2Fplugin%2Flaunch%2FMainMachineLaunchConfigTab.java;h=836b8a91d66cd5823948e76b006cae44d29b7c13;hb=0eb525202d3c871a2a20f789af1728248f3cff11;hp=7671827d8bbd900bc3bb1587ec59689a9e58e46e;hpb=d8d92dba4339e1240e4362046eadbe51c6740780;p=Mograsim.git diff --git a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/launch/MainMachineLaunchConfigTab.java b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/launch/MainMachineLaunchConfigTab.java index 7671827d..836b8a91 100644 --- a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/launch/MainMachineLaunchConfigTab.java +++ b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/launch/MainMachineLaunchConfigTab.java @@ -27,7 +27,7 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.dialogs.ElementListSelectionDialog; import org.eclipse.ui.dialogs.ElementTreeSelectionDialog; @@ -37,6 +37,7 @@ import org.eclipse.ui.model.WorkbenchLabelProvider; import net.mograsim.plugin.nature.MograsimNature; import net.mograsim.plugin.util.FileExtensionViewerFilter; import net.mograsim.plugin.util.ImageDescriptorWithMargins; +import net.mograsim.plugin.util.ProjectViewerFilter; //a big part of this class is stolen from org.eclipse.jdt.debug.ui public class MainMachineLaunchConfigTab extends AbstractLaunchConfigurationTab @@ -52,27 +53,28 @@ public class MainMachineLaunchConfigTab extends AbstractLaunchConfigurationTab Composite innerParent = new Composite(parent, SWT.NONE); setControl(innerParent); - innerParent.setLayout(new GridLayout()); + innerParent.setLayout(new GridLayout(3, false)); - this.projSelText = createResourceSelectorGroup(innerParent, "&Project:", this::chooseMograsimProject); + this.projSelText = addResourceSelector(innerParent, "&Project:", this::chooseMograsimProject); - this.mpmFileSelText = createResourceSelectorGroup(innerParent, "&MPM:", this::chooseMPMFile); + this.mpmFileSelText = addResourceSelector(innerParent, "&MPM:", this::chooseMPMFile); - this.initialRAMFileSelText = createResourceSelectorGroup(innerParent, "Initial &RAM (optional):", this::chooseInitialRAMFile); + this.initialRAMFileSelText = addResourceSelector(innerParent, "Initial &RAM (optional):", this::chooseInitialRAMFile); } - private Text createResourceSelectorGroup(Composite innerParent, String groupName, Supplier chooser) + private Text addResourceSelector(Composite innerParent, String label, Supplier chooser) { - Group group = new Group(innerParent, SWT.NONE); - group.setLayout(new GridLayout(2, false)); - group.setText(groupName); - group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); + Label swtLabel = new Label(innerParent, SWT.NONE); + swtLabel.setText(label); + swtLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false)); - Text text = new Text(group, SWT.BORDER); + Text text = new Text(innerParent, SWT.BORDER); text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); text.addModifyListener(e -> updateLaunchConfigurationDialog()); - Button browseButton = new Button(group, SWT.PUSH); + swtLabel.addListener(SWT.FocusIn, e -> text.setFocus()); + + Button browseButton = new Button(innerParent, SWT.PUSH); GridData projSelButtonData = new GridData(); projSelButtonData.widthHint = calculateWidthHint(browseButton); projSelButtonData.horizontalAlignment = SWT.FILL; @@ -100,7 +102,7 @@ public class MainMachineLaunchConfigTab extends AbstractLaunchConfigurationTab @Override protected ImageDescriptor decorateImage(ImageDescriptor input, Object element) { - return new ImageDescriptorWithMargins(input, new Point(22, 16)); + return new ImageDescriptorWithMargins(input, new Point(20, 16)); } }; ElementListSelectionDialog dialog = new ElementListSelectionDialog(getShell(), renderer); @@ -114,19 +116,13 @@ public class MainMachineLaunchConfigTab extends AbstractLaunchConfigurationTab private String chooseMPMFile() { - WorkbenchLabelProvider renderer = new WorkbenchLabelProvider() - { - @Override - protected ImageDescriptor decorateImage(ImageDescriptor input, Object element) - { - return new ImageDescriptorWithMargins(input, new Point(22, 16)); - } - }; - ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), renderer, new WorkbenchContentProvider()); + ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), new WorkbenchLabelProvider(), + new WorkbenchContentProvider()); dialog.setTitle("MPM Selection"); dialog.setMessage("Select a MPM file"); - dialog.setInput(getSelectedProject()); + dialog.setInput(ResourcesPlugin.getWorkspace().getRoot()); dialog.addFilter(new FileExtensionViewerFilter("mpm")); + dialog.addFilter(new ProjectViewerFilter(getSelectedProject())); if (dialog.open() == Window.OK) return ((IResource) dialog.getResult()[0]).getProjectRelativePath().toPortableString(); @@ -135,19 +131,13 @@ public class MainMachineLaunchConfigTab extends AbstractLaunchConfigurationTab private String chooseInitialRAMFile() { - WorkbenchLabelProvider renderer = new WorkbenchLabelProvider() - { - @Override - protected ImageDescriptor decorateImage(ImageDescriptor input, Object element) - { - return new ImageDescriptorWithMargins(input, new Point(22, 16)); - } - }; - ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), renderer, new WorkbenchContentProvider()); + ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), new WorkbenchLabelProvider(), + new WorkbenchContentProvider()); dialog.setTitle("Initial RAM Selection"); dialog.setMessage("Select a RAM file"); - dialog.setInput(getSelectedProject()); + dialog.setInput(ResourcesPlugin.getWorkspace().getRoot()); dialog.addFilter(new FileExtensionViewerFilter("mem")); + dialog.addFilter(new ProjectViewerFilter(getSelectedProject())); if (dialog.open() == Window.OK) return ((IResource) dialog.getResult()[0]).getProjectRelativePath().toPortableString();