diff options
author | Claudia Knobloch | 2011-05-16 07:15:34 +0000 |
---|---|---|
committer | Claudia Knobloch | 2011-05-16 07:15:34 +0000 |
commit | 97ef80021855eb097f8c8429abb779c813767d1d (patch) | |
tree | b403bc9da2f6b0f376576b0038d93b57254dbe5a | |
parent | 6cfe93feed89a90c5c76cbbe0a12a269f32c671f (diff) | |
download | org.eclipse.ptp-97ef80021855eb097f8c8429abb779c813767d1d.tar.gz org.eclipse.ptp-97ef80021855eb097f8c8429abb779c813767d1d.tar.xz org.eclipse.ptp-97ef80021855eb097f8c8429abb779c813767d1d.zip |
Table columns
5 files changed, 87 insertions, 150 deletions
diff --git a/rms/org.eclipse.ptp.rm.lml.ui/plugin.xml b/rms/org.eclipse.ptp.rm.lml.ui/plugin.xml index 2df9ecde9..64ffd8b40 100644 --- a/rms/org.eclipse.ptp.rm.lml.ui/plugin.xml +++ b/rms/org.eclipse.ptp.rm.lml.ui/plugin.xml @@ -43,38 +43,16 @@ </perspective> </extension> <extension - point="org.eclipse.ui.commands"> - <category - id="org.eclipse.ptp.rm.lml.ui.menu.category1" - name="Menu"> - </category> - <command - categoryId="org.eclipse.ptp.rm.lml.ui.menu.category1" - defaultHandler="org.eclipse.ptp.rm.lml.ui.actions.HideTableColumnAction" - id="org.eclipse.ptp.rm.lml.ui.menu.command1" - name="Menu"> - </command> - </extension> - <extension - point="org.eclipse.ui.commandImages"> - <image - commandId="org.eclipse.ptp.rm.lml.ui.menu.command1" - icon="icons/parallel.gif"> - </image> - </extension> - <extension point="org.eclipse.ui.menus"> <menuContribution - locationURI="toolbar:org.eclipse.ptp.rm.lml.ui.main.toolbar?after=additions"> - <toolbar - id="org.eclipse.ptp.rm.lml.ui.toolbar1"> - <command - commandId="org.eclipse.ptp.rm.lml.ui.menu.command1" - id="org.eclipse.ptp.rm.lml.ui.menu.toolbar1.command1" - style="pulldown" - tooltip="Send them a message!"> - </command> - </toolbar> + allPopups="false" + locationURI="menu:org.eclipse.ptp.rm.lml.ui..views.TableView?afetr=additions"> + <menu + label="Hide column"> + </menu> + <menu + label="Show column"> + </menu> </menuContribution> </extension> diff --git a/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/actions/HideTableColumnAction.java b/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/actions/HideTableColumnAction.java index 03b16f2d7..60545ca8a 100644 --- a/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/actions/HideTableColumnAction.java +++ b/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/actions/HideTableColumnAction.java @@ -1,14 +1,28 @@ package org.eclipse.ptp.rm.lml.ui.actions; -import org.eclipse.core.commands.AbstractHandler; -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; +import org.eclipse.jface.action.Action; +import org.eclipse.ptp.rm.lml.core.LMLCorePlugin; +import org.eclipse.ptp.rm.lml.core.model.ILguiItem; +import org.eclipse.ptp.rm.lml.ui.views.TableView; -public class HideTableColumnAction extends AbstractHandler { +public class HideTableColumnAction extends Action { - public Object execute(ExecutionEvent event) throws ExecutionException { - System.out.println("Ich bin hier"); - return null; + private String gid; + private String title; + private TableView view; + + public HideTableColumnAction(String gid, String title, TableView view) { + super(title); + this.gid = gid; + this.title = title; + this.view = view; + } + + public void run() { + ILguiItem lguiItem = LMLCorePlugin.getDefault().getLMLManager().getSelectedLguiItem(); + lguiItem.getTableHandler().changeTableColumnsWidth(view.getWidths(), gid); + lguiItem.getTableHandler().changeTableColumnsOrder(gid, view.getRemoveColumnOrder()); + LMLCorePlugin.getDefault().getLMLManager().setTableColumnNonActive(gid, title); } }
\ No newline at end of file diff --git a/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/actions/ShowTableColumnAction.java b/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/actions/ShowTableColumnAction.java index 0d87ef1e2..9288aa0ad 100644 --- a/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/actions/ShowTableColumnAction.java +++ b/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/actions/ShowTableColumnAction.java @@ -10,31 +10,30 @@ */ package org.eclipse.ptp.rm.lml.ui.actions; -import org.eclipse.core.commands.AbstractHandler; -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.action.Action; import org.eclipse.ptp.rm.lml.core.LMLCorePlugin; -import org.eclipse.swt.widgets.Display; +import org.eclipse.ptp.rm.lml.core.model.ILguiItem; +import org.eclipse.ptp.rm.lml.ui.views.TableView; -public class ShowTableColumnAction extends AbstractHandler { +public class ShowTableColumnAction extends Action { private final String gid; + private final String title; + private TableView view; - public ShowTableColumnAction(String gid, String name) { + public ShowTableColumnAction(String gid, String title, TableView view) { + super(title); this.gid = gid; + this.title = title; + this.view = view; } public void run() { - // TODO Remove - MessageDialog.openInformation(Display.getCurrent().getActiveShell(), "Click!", - "There will be an update and an additional tablecolumn () will be seen"); - LMLCorePlugin.getDefault().getLMLManager().setTableColumnActive(gid, ""); + ILguiItem lguiItem = LMLCorePlugin.getDefault().getLMLManager().getSelectedLguiItem(); + lguiItem.getTableHandler().changeTableColumnsWidth(view.getWidths(), gid); + lguiItem.getTableHandler().changeTableColumnsOrder(gid, view.getRemoveColumnOrder()); + LMLCorePlugin.getDefault().getLMLManager().setTableColumnActive(gid, title); } - public Object execute(ExecutionEvent event) throws ExecutionException { - // TODO Auto-generated method stub - return null; - } } diff --git a/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/views/LMLView.java b/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/views/LMLView.java index 1d988dcf2..02bcfd287 100644 --- a/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/views/LMLView.java +++ b/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/views/LMLView.java @@ -110,6 +110,7 @@ public class LMLView extends ViewPart { /** * */ + public Composite composite; public ListViewer viewer; private AddLguiAction addLguiAction; private RemoveLguiAction removeLguiAction; @@ -126,6 +127,7 @@ public class LMLView extends ViewPart { @Override public void createPartControl(Composite parent) { + composite = parent; viewer = new ListViewer(parent, SWT.SINGLE); viewer.setLabelProvider(new LabelProvider() { @Override @@ -157,9 +159,11 @@ public class LMLView extends ViewPart { } private void createList() { - list = viewer.getList(); - list.removeAll(); - list.removeSelectionListener(listListener); + if (!composite.isDisposed()) { + list = viewer.getList(); + list.removeAll(); + list.removeSelectionListener(listListener); + createContextMenu(); if (fSelected != null) { @@ -169,6 +173,7 @@ public class LMLView extends ViewPart { list.setSelection(lmlManager.getSelectedLguiIndex(fSelected.toString())); } list.addSelectionListener(listListener); + } } @Override diff --git a/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/views/TableView.java b/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/views/TableView.java index f73187d4e..905a371db 100644 --- a/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/views/TableView.java +++ b/rms/org.eclipse.ptp.rm.lml.ui/src/org/eclipse/ptp/rm/lml/ui/views/TableView.java @@ -17,6 +17,9 @@ package org.eclipse.ptp.rm.lml.ui.views; //import org.eclipse.jface.action.IMenuManager; //import org.eclipse.jface.action.IToolBarManager; //import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.ILazyTreeContentProvider; import org.eclipse.jface.viewers.ITableLabelProvider; @@ -36,6 +39,8 @@ import org.eclipse.ptp.rm.lml.core.model.ITableColumnLayout; import org.eclipse.ptp.rm.lml.internal.core.model.Cell; import org.eclipse.ptp.rm.lml.internal.core.model.LMLColor; import org.eclipse.ptp.rm.lml.internal.core.model.Row; +import org.eclipse.ptp.rm.lml.ui.actions.HideTableColumnAction; +import org.eclipse.ptp.rm.lml.ui.actions.ShowTableColumnAction; import org.eclipse.ptp.rm.lml.ui.providers.LMLViewPart; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ControlAdapter; @@ -46,8 +51,6 @@ import org.eclipse.swt.events.MouseAdapter; import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.events.MouseMoveListener; import org.eclipse.swt.events.MouseTrackListener; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.GC; import org.eclipse.swt.graphics.Image; @@ -103,7 +106,7 @@ public class TableView extends LMLViewPart { } - private final class LMLJobsListListener implements ILMLListener { + private final class LMLTableListListener implements ILMLListener { /* * (non-Javadoc) @@ -175,15 +178,11 @@ public class TableView extends LMLViewPart { public int sizeViewer; public ILguiItem fSelectedLguiItem = null; public String gid = null; - private final ILMLListener lmlListener = new LMLJobsListListener(); + private final ILMLListener lmlListener = new LMLTableListListener(); private final ILMLManager lmlManager = LMLCorePlugin.getDefault().getLMLManager(); private TreeItem selectedItem = null; private String selectedOid = null; - // private Action addItemAction; - // private Action deleteItemAction; - // private Action selectAllAction; - @Override public void createPartControl(Composite parent) { composite = new Composite(parent, SWT.None); @@ -299,84 +298,34 @@ public class TableView extends LMLViewPart { tree.setLinesVisible(true); tree.setHeaderVisible(true); createColumns(); - // createActions(); - // createMenu(); - // createToolbar(); + createMenu(); input = fSelectedLguiItem.getTableHandler().getTableDataWithColor(gid); viewer.setInput(input); viewer.getTree().setItemCount(input.length); } - // private void createActions() { - // addItemAction = new Action("Add...") { - // @Override - // public void run() { - // addItem(); - // } - // - // private void addItem() { - // System.out.println("Add"); - // } - // }; - // addItemAction.setImageDescriptor(getImageDescriptor("parallel.gif")); - // - // deleteItemAction = new Action("Delete...") { - // @Override - // public void run() { - // deleteItem(); - // } - // - // private void deleteItem() { - // System.out.println("Delete"); - // } - // }; - // deleteItemAction.setImageDescriptor(getImageDescriptor("legend.gif")); - // - // selectAllAction = new Action("Select all...") { - // @Override - // public void run() { - // selectAll(); - // } - // - // private void selectAll() { - // System.out.println("Select all"); - // } - // }; - // - // viewer.addSelectionChangedListener(new ISelectionChangedListener(){ - // public void selectionChanged(SelectionChangedEvent event) { - // updateActionEnablement(); - // } - // }); - // } - // - // private void updateActionEnablement() { - // IStructuredSelection sel = (IStructuredSelection) viewer.getSelection(); - // deleteItemAction.setEnabled(sel.size() > 0); - // } - // - // public void createMenu(){ - // IMenuManager menuManager = - // getViewSite().getActionBars().getMenuManager(); - // System.out.println(menuManager); - // menuManager.add(selectAllAction); - // } - // - // private void createToolbar() { - // IToolBarManager toolbarManager = - // getViewSite().getActionBars().getToolBarManager(); - // toolbarManager.add(addItemAction); - // toolbarManager.add(deleteItemAction); - // } - // - // private ImageDescriptor getImageDescriptor(String relativePath) { - // String iconPath = "icons/"; - // LMLUIPlugin plugin = LMLUIPlugin.getDefault(); - // URL url = plugin.getBundle().getEntry(iconPath + relativePath); - // return ImageDescriptor.createFromURL(url); - // - // } - + private void createMenu() { + IMenuManager menuManager = getViewSite().getActionBars().getMenuManager(); + + IMenuManager subMenuShow = new MenuManager("Show column..."); + String[] columnNonActive = fSelectedLguiItem.getTableHandler().getTableColumnNonActive(gid); + for (String column : columnNonActive) { + IAction action = new ShowTableColumnAction(gid, column, this); + subMenuShow.add(action); + } + menuManager.add(subMenuShow); + + IMenuManager subMenuHide = new MenuManager("Hide column..."); + String[] columnActive = fSelectedLguiItem.getTableHandler().getTableColumnActive(gid); + for (String column : columnActive) { + IAction action = new HideTableColumnAction(gid, column, this); + subMenuHide.add(action); + } + menuManager.add(subMenuHide); + + getViewSite().getActionBars().updateActionBars(); + } + private int getColumnAlignment(String alignment) { if (alignment.equals("LEFT")) { return SWT.LEAD; @@ -384,8 +333,7 @@ public class TableView extends LMLViewPart { if (alignment.equals("RIGHT")) { return SWT.TRAIL; } - - return 0; + return SWT.LEAD; } /** @@ -413,13 +361,6 @@ public class TableView extends LMLViewPart { treeColumn.setText(tableColumnLayouts[i].getTitle()); treeColumn.setWidth(tableColumnLayouts[i].getWidth()); treeColumn.setMoveable(true); - treeColumn.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - TreeColumn column = (TreeColumn) e.getSource(); - System.out.println(column.getText()); - } - }); treeColumns[i] = treeColumn; } @@ -504,12 +445,8 @@ public class TableView extends LMLViewPart { } - private Double[] getWidths() { + public Double[] getWidths() { Double[] widths = new Double[treeColumns.length]; - int widthTable = 0; - for (int i = 0; i < treeColumns.length; i++) { - widthTable += treeColumns[i].getWidth(); - } Double widthColumn = Integer.valueOf(sizeViewer).doubleValue() / treeColumns.length; for (int i = 0; i < treeColumns.length; i++) { widths[i] = widthColumn / treeColumns[i].getWidth(); @@ -529,6 +466,10 @@ public class TableView extends LMLViewPart { } return orderNew; } + + public int[] getRemoveColumnOrder() { + return removingColumn(tree.getColumnOrder()); + } private void redrawColumns() { sizeViewer = composite.getSize().x - 70; |