changeset 35:d5e3a71b8390

Added ExtensionEditPage and ExtensionsMasterDetailsBlock
author Andriy Petrus <apetrus@redhat.com>
date Thu, 05 Dec 2013 15:37:14 -0500
parents e150721e4d19
children cd2af2bb2307
files src/com/redhat/thermostat/plugin/eclipse/editor/ExtensionEditPage.java src/com/redhat/thermostat/plugin/eclipse/editor/ExtensionsMasterDetailsBlock.java src/com/redhat/thermostat/plugin/eclipse/editor/MultiPageEditor.java
diffstat 3 files changed, 200 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/com/redhat/thermostat/plugin/eclipse/editor/ExtensionEditPage.java	Thu Dec 05 15:37:14 2013 -0500
@@ -0,0 +1,118 @@
+package com.redhat.thermostat.plugin.eclipse.editor;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.IDetailsPage;
+import org.eclipse.ui.forms.IFormPart;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Section;
+
+public class ExtensionEditPage implements IDetailsPage {
+    private Text extensionName;
+    private Text extensionBundleName;
+    
+    private FormToolkit toolkit;
+    
+    @Override
+    public void initialize(IManagedForm form) {
+        toolkit = form.getToolkit();
+    }
+
+    @Override
+    public void dispose() {
+        // TODO Auto-generated method stub
+        
+    }
+
+    @Override
+    public boolean isDirty() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public void commit(boolean onSave) {
+        // TODO Auto-generated method stub
+        
+    }
+
+    @Override
+    public boolean setFormInput(Object input) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public void setFocus() {
+        // TODO Auto-generated method stub
+        
+    }
+
+    @Override
+    public boolean isStale() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public void refresh() {
+        // TODO Auto-generated method stub
+        
+    }
+
+    @Override
+    public void selectionChanged(IFormPart part, ISelection selection) {
+        // TODO Auto-generated method stub
+        
+    }
+
+    @Override
+    public void createContents(Composite parent) {
+        parent.setLayout(new GridLayout());
+
+        Section section = toolkit.createSection(parent, Section.TITLE_BAR);
+        section.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+        section.setText("Extension details");
+        section.setDescription("Items marked with * are required");
+
+        Composite sectionContents = toolkit.createComposite(section);
+        section.setClient(sectionContents);
+
+        sectionContents.setLayout(new GridLayout());
+
+        createBasicSection(sectionContents);
+
+        createArgumentsAndOptionsSection(sectionContents);
+        createBundlesSection(sectionContents);
+    }
+    
+    private void createBasicSection(Composite sectionContents) {
+        Section basics = toolkit.createSection(sectionContents, Section.TITLE_BAR);
+        basics.setText("Basics");
+
+        Composite basicContents = toolkit.createComposite(basics);
+        basics.setClient(basicContents);
+        basicContents.setLayout(new GridLayout(2, false));
+
+        toolkit.createLabel(basicContents, "Name:");
+        extensionName = toolkit.createText(basicContents, "<extension name here>");
+
+        toolkit.createLabel(basicContents, "Bundle:");
+        extensionBundleName = toolkit.createText(basicContents, "<bundle name here>");
+    }
+    
+    private void createArgumentsAndOptionsSection(Composite sectionContents) {
+        // TODO Auto-generated method stub
+    }
+
+    private void createBundlesSection(Composite sectionContents) {
+        // TODO Auto-generated method stub
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/com/redhat/thermostat/plugin/eclipse/editor/ExtensionsMasterDetailsBlock.java	Thu Dec 05 15:37:14 2013 -0500
@@ -0,0 +1,77 @@
+package com.redhat.thermostat.plugin.eclipse.editor;
+
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.ui.forms.DetailsPart;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.MasterDetailsBlock;
+import org.eclipse.ui.forms.SectionPart;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Section;
+
+public class ExtensionsMasterDetailsBlock extends MasterDetailsBlock {
+
+    @Override
+    protected void registerPages(DetailsPart detailsPart) {
+        detailsPart.registerPage(String.class, new ExtensionEditPage());
+    }
+
+    @Override
+    protected void createMasterPart(final IManagedForm managedForm, Composite parent) {
+        FormToolkit toolkit = managedForm.getToolkit();
+        final Section section = toolkit.createSection(parent, Section.TITLE_BAR);
+        section.setText("Commands provided by the plugin");
+
+        final SectionPart sectionPart = new SectionPart(section);
+
+        Composite sectionContents = toolkit.createComposite(section);
+        GridLayout layout = new GridLayout(2, false);
+        sectionContents.setLayout(layout);
+
+        section.setClient(sectionContents);
+
+        Table list = toolkit.createTable(sectionContents, SWT.BORDER | SWT.V_SCROLL);
+        list.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+        TableViewer viewer = new TableViewer(list);
+        viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+            @Override
+            public void selectionChanged(SelectionChangedEvent event) {
+                managedForm.fireSelectionChanged(sectionPart, event.getSelection());
+            }
+        });
+        ArrayContentProvider contentProvider = ArrayContentProvider.getInstance();
+        viewer.setContentProvider(contentProvider);
+        viewer.setInput(new String[] { "Extension 1", "Two", "THREEEEE!"} );
+
+        Composite buttons = toolkit.createComposite(sectionContents);
+        GridData buttonCompositeLayoutData = new GridData(SWT.FILL, SWT.FILL, false, true);
+        buttonCompositeLayoutData.verticalAlignment = SWT.BEGINNING;
+        buttons.setLayoutData(buttonCompositeLayoutData);
+
+        buttons.setLayout(new GridLayout(1, false));
+        GridData buttonLayoutData = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
+
+        Button add = toolkit.createButton(buttons, "Add", SWT.NONE);
+        add.setLayoutData(buttonLayoutData);
+        // TODO handle add event
+        Button remove = toolkit.createButton(buttons, "Remove", SWT.NONE);
+        remove.setLayoutData(buttonLayoutData);
+        // TODO handle remove event
+    }
+
+
+    @Override
+    protected void createToolBarActions(IManagedForm managedForm) {
+        // TODO Auto-generated method stub
+        
+    }
+
+}
--- a/src/com/redhat/thermostat/plugin/eclipse/editor/MultiPageEditor.java	Thu Dec 05 15:24:40 2013 -0500
+++ b/src/com/redhat/thermostat/plugin/eclipse/editor/MultiPageEditor.java	Thu Dec 05 15:37:14 2013 -0500
@@ -31,6 +31,7 @@
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.forms.IManagedForm;
 import org.eclipse.ui.forms.ManagedForm;
+import org.eclipse.ui.forms.MasterDetailsBlock;
 import org.eclipse.ui.forms.events.HyperlinkAdapter;
 import org.eclipse.ui.forms.events.HyperlinkEvent;
 import org.eclipse.ui.forms.widgets.Form;
@@ -209,17 +210,16 @@
     }
 
     private void createExtensionPage() {
-        toolkit = new FormToolkit(getContainer().getDisplay());
-        Form form = toolkit.createForm(getContainer());
+        ManagedForm managedForm = new ManagedForm(getContainer());
+        ScrolledForm form = managedForm.getForm();
         form.setText("Extensions");
         GridLayout layout = new GridLayout();
         layout.numColumns = 2;
         layout.makeColumnsEqualWidth = true;
         form.getBody().setLayout(layout);
 
-        createExtensionSection(form.getBody());
-
-        createExtensionSection(form.getBody());
+        MasterDetailsBlock masterAndDetails = new ExtensionsMasterDetailsBlock(); //TODO create master details block for extensions
+        masterAndDetails.createContent(managedForm);
 
         addPage(INDEX_EXTENSIONS, form);
         setPageText(INDEX_EXTENSIONS, "Extensions");