Mercurial > hg > thermostat-tools-eclipse
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");