import java.util.ArrayList;
import java.util.List;
-
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
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.Event;
-import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
-import org.tizen.dynamicanalyzer.nl.TimelineChartLables;
+import org.tizen.dynamicanalyzer.ColorResources;
+import org.tizen.dynamicanalyzer.ImageResources;
import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
-
+import org.eclipse.swt.dnd.*;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
public class TimelineEditItemsDialog extends Dialog {
+
private Shell parent = null;
private Shell shell = null;
-
- private TableViewer availableViewer;
- private TableViewer selectedViewer;
- private Button addButton;
- private Button addAllButton;
- private Button removeButton;
- private Button removeAllButton;
-
- private String ADD = TimelineChartLables.TIMELINE_EDIT_ITEMS_DLG_ADD;
- private String ADD_ALL = TimelineChartLables.TIMELINE_EDIT_ITEMS_DLG_ADD_ALL;
- private String REMOVE = TimelineChartLables.TIMELINE_EDIT_ITEMS_DLG_REMOVE;
- private String REMOVE_ALL = TimelineChartLables.TIMELINE_EDIT_ITEMS_DLG_REMOVE_ALL;
- private String SWAP = TimelineChartLables.TIMELINE_EDIT_ITEMS_DLG_SWAP;
+ private List<String> selectedItemsList;
+ private TableViewer chartTableViewer;
+ private boolean chartChangeSatus = true;
+ private int clickedItemIndex = 0;
public TimelineEditItemsDialog(Shell parent, int style) {
super(parent);
setShellStyle(getShellStyle() | SWT.MAX | SWT.RESIZE);
}
- @Override
- protected void configureShell(Shell shell) {
- super.configureShell(shell);
-
- shell.setText(TimelineChartLables.TIMELINE_EDIT_ITEMS_DLG_A);
- shell.setMinimumSize(400, 400);
- }
-
private Listener okButtonListener = new Listener() {
- @Override
public void handleEvent(Event event) {
if (event.type == SWT.Selection) {
- TableItem[] tableitems = selectedViewer.getTable().getItems();
+ TableItem[] tableitems = chartTableViewer.getTable().getItems();
+ List<String> availableItemList = new ArrayList<String>();
List<String> selectedItemList = new ArrayList<String>();
for (int i = 0; i < tableitems.length; i++) {
- selectedItemList.add(tableitems[i].getText());
+ availableItemList.add(tableitems[i].getText(2));
+ if ( tableitems[i].getText(3).equals("selected enable") ){
+ selectedItemList.add(tableitems[i].getText(2));
+ }
}
+ TimelineItemsProvider.setAvailableItemsList( availableItemList );
TimelineItemsProvider.setSelectedItemList(selectedItemList);
TimelineComposite timelineComposite = AnalyzerUtil.getTimelineComposite();
}
}
};
+
private Listener cancelButtonListener = new Listener() {
@Override
@Override
public int open() {
+
shell = new Shell(parent, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM);
- shell.setText(TimelineChartLables.TIMELINE_EDIT_ITEMS_DLG_ADD_ITEMS);
- shell.setSize(600, 400);
-
- GridData gd = new GridData();
- gd.horizontalAlignment = GridData.CENTER;
- gd.widthHint = 450;
- shell.setLayoutData(gd);
-
- GridLayout shellLayout = new GridLayout(1, false);
- shell.setLayout(shellLayout);
+ shell.setText("Edit Chart");
+ shell.setSize(446, 450);
- Composite editorContainer = new Composite(shell, SWT.NONE);
- GridLayout editoeLayout = new GridLayout(3, false);
+ GridLayout editoeLayout = new GridLayout();
+ Composite editorContainer = new Composite(shell, SWT.NONE );
editorContainer.setLayout(editoeLayout);
editorContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
+ shell.setLayout(editoeLayout);
+ chartTableViewer = new TableViewer(editorContainer, SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER );
+ GridData tableGridData = new GridData(GridData.FILL_BOTH);
+ chartTableViewer.getTable().setLayoutData(tableGridData);
+ chartTableViewer.getTable().setLinesVisible(true);
- /* Creates available items area and sets layout */
- Composite leftContainer = new Composite(editorContainer, SWT.NONE);
- GridLayout leftContainerLayout = new GridLayout();
- leftContainer.setLayout(leftContainerLayout);
- leftContainer.setLayoutData(new GridData());
+ addListeners();
+
+ List<String> availableItemsList = TimelineItemsProvider.getAvailableItemsList();
+ if (null == availableItemsList || availableItemsList.isEmpty()) {
+ return -1;
+ }
+
+ int availableItemsListSize = availableItemsList.size();
+ selectedItemsList = TimelineItemsProvider.getSelectedItemsList();
+ if (null == selectedItemsList) {
+ return -1;
+ }
+ for (int i = 0; i < 4; i++) {
+ if (i == 0)
+ new TableColumn(chartTableViewer.getTable(), SWT.NONE).setWidth(82);
+ else if (i == 1)
+ new TableColumn(chartTableViewer.getTable(), SWT.NONE).setWidth(316);
+ else if (i == 2)
+ new TableColumn(chartTableViewer.getTable(), SWT.NONE).setWidth(0);
+ else if (i == 3)
+ new TableColumn(chartTableViewer.getTable(), SWT.NONE).setWidth(0);
+ }
+ final TableItem[] items = new TableItem[availableItemsListSize];
+ for (int i = 0; i < availableItemsListSize; i++) {
+ items[i] = new TableItem(chartTableViewer.getTable(), SWT.NONE, i);
+ items[i].setText(0, " ");
+ items[i].setImage(0, ImageResources.ADD_CHART_CPU);
+ items[i].setText(1, " ");
+ items[i].setText(2, availableItemsList.get(i));
+ items[i].setText(3, "selected disable");
+
+ for (int j = 0; j < selectedItemsList.size(); j++) {
+ if ( availableItemsList.get(i).equals(selectedItemsList.get(j))){
+ items[i].setText(3, "selected enable");
+ break;
+ }
+ }
+ }
+
+ Listener paintListener = new Listener() {
+ public void handleEvent(Event event) {
+ switch (event.type) {
+ case SWT.MeasureItem: {
+
+ TableItem item = (TableItem) event.item;
+ String text = item.getText(event.index+1);
+ Point size = event.gc.textExtent(text);
+ event.width = size.x;
+ event.height = Math.max(event.height, size.y);
+
+ break;
+ }
+ case SWT.PaintItem: {
+
+ TableItem item = (TableItem) event.item;
+
+ String itemName = item.getText(event.index+1);
+ Point size = event.gc.textExtent(itemName);
+ int offset2 = event.index == 0 ? Math.max(0, (event.height - size.y) / 2) : 0;
+
+ String itemExplan = "com.samsung.calculator_2012-07-16:10:10:01";
+ size = event.gc.textExtent(itemExplan);
+ offset2 = event.index == 0 ? Math.max(0, (event.height - size.y) / 2) : 0;
+
+
+ String strItemStatus_1 = item.getText(3);
+
+ GC gc = event.gc;
+ event.gc.setAdvanced(true);
+ Rectangle rect = event.getBounds();
+ Color foreground = gc.getForeground();
+ Color background = gc.getBackground();
+ if ( strItemStatus_1.equals("selected enable") ){
+ event.gc.setForeground(ColorResources.ADD_CHART_ENABLE_COLOR_START);
+ event.gc.setBackground(ColorResources.ADD_CHART_ENABLE_COLOR_END);
+ }
+ else{
+ event.gc.setForeground(ColorResources.ADD_CHART_DISABLE_COLOR_START);
+ event.gc.setBackground(ColorResources.ADD_CHART_DISABLE_COLOR_END);
+ }
+ event.gc.fillGradientRectangle(0, rect.y, 402, 66, false);
+ gc.setForeground(foreground);
+ gc.setBackground(background);
+ event.detail &= ~SWT.SELECTED;
+
+ if ( strItemStatus_1.equals("selected enable") && event.index == 1 ){
+ event.gc.drawImage(ImageResources.ADD_CHART_OFF, 370, event.y+15 );
+ }
+ else{
+ event.gc.drawImage(ImageResources.ADD_CHART_ON, 370, event.y+15 );
+ }
+
+ String strItemName = item.getText(2);
+ Image itemImage =null;
+ if (strItemName.equalsIgnoreCase("cpu")){
+ itemImage = ImageResources.ADD_CHART_CPU;
+ }
+ else if (strItemName.equalsIgnoreCase("cpu core")){
+ itemImage = ImageResources.ADD_CHART_CPU_CORE;
+ }
+ else if (strItemName.equalsIgnoreCase("heap Allocation")){
+ itemImage = ImageResources.ADD_CHART_MEMORY_HEAP;
+ }
+ else if (strItemName.equalsIgnoreCase("process size")){
+ itemImage = ImageResources.ADD_CHART_MEMORY_PROCESS;
+ }
+ else if (strItemName.equalsIgnoreCase("memory")){
+ itemImage = ImageResources.ADD_CHART_MEMORY_ALLOCATION;
+ }
+ else if (strItemName.equalsIgnoreCase("ui event")){
+ itemImage = ImageResources.ADD_CHART_UI_EVENT;
+ }
+ else if (strItemName.equalsIgnoreCase("file")){
+ itemImage = ImageResources.ADD_CHART_READ_WRITE;
+ }
+ else if (strItemName.equalsIgnoreCase("cpu frequency")){
+ itemImage = ImageResources.ADD_CHART_CPU_FREQUENCY;
+ }
+ if ( event.index == 0 ){
+ event.gc.drawImage(itemImage, 3, event.y );
+ }
+ else if ( event.index == 1 ){
+ event.gc.drawText(itemName, event.x+20, event.y + offset2+15, true);
+ event.gc.setForeground(ColorResources.BLACK);
+ event.gc.drawText(itemExplan, event.x+20, event.y + offset2+35, true);
+ }
+ break;
+ }
+ case SWT.EraseItem: {
+ event.detail &= ~SWT.FOREGROUND;
+ break;
+ }
+ }
+ }
+ };
+ chartTableViewer.getTable().addListener(SWT.MeasureItem, paintListener);
+ chartTableViewer.getTable().addListener(SWT.PaintItem, paintListener);
+ chartTableViewer.getTable().addListener(SWT.EraseItem, paintListener);
+
+
+ Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
+
+ DragSource source = new DragSource(chartTableViewer.getTable(),DND.DROP_MOVE | DND.DROP_COPY);
+ source.setTransfer(types);
+ source.addDragListener(new DragSourceAdapter() {
+ public void dragSetData(DragSourceEvent event) {
+ DragSource ds = (DragSource) event.widget;
+ Table table = (Table) ds.getControl();
+ TableItem[] selection = table.getSelection();
+
+ StringBuffer buff = new StringBuffer();
+ for (int i = 0, n = selection.length; i < n; i++) {
+ buff.append(selection[i].getText());
+ }
+ event.data = buff.toString();
+
+ chartChangeSatus = false;
+ }
+ });
- Label availableMonitorsLabel = new Label(leftContainer, SWT.NONE);
- availableMonitorsLabel.setText(TimelineChartLables.TIMELINE_EDIT_ITEMS_DLG_AVAILABLE_ITEMS);
+ DropTarget target = new DropTarget(chartTableViewer.getTable(),DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT);
+ target.setTransfer(types);
+ target.addDropListener(new DropTargetAdapter() {
+ public void dragEnter(DropTargetEvent event) {
- availableViewer = new TableViewer(leftContainer, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
- availableViewer.setLabelProvider(new TimelineItemsLableProvider());
- availableViewer.setContentProvider(new TimelineItemsContentProvider());
+ clickedItemIndex = chartTableViewer.getTable().getSelectionIndex();
- GridData tableGridData = new GridData(GridData.FILL_BOTH);
- tableGridData.heightHint = 300;
- tableGridData.widthHint = 300;
- availableViewer.getTable().setLayoutData(tableGridData);
- leftContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- /* Creates button area and sets layout */
- Composite centerContainer = new Composite(editorContainer, SWT.NONE);
- GridLayout centerContainerLayout = new GridLayout();
- centerContainerLayout.marginWidth = 0;
- centerContainer.setLayout(centerContainerLayout);
- GridData centerGridData = new GridData(GridData.FILL_VERTICAL);
- centerGridData.verticalIndent = 15;
- centerContainer.setLayoutData(centerGridData);
-
- addButton = new Button(centerContainer, SWT.PUSH);
- addButton.setText(ADD);
- addButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- addAllButton = new Button(centerContainer, SWT.PUSH);
- addAllButton.setText(ADD_ALL);
- addAllButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- removeButton = new Button(centerContainer, SWT.PUSH);
- removeButton.setText(REMOVE);
- removeButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- removeAllButton = new Button(centerContainer, SWT.PUSH);
- removeAllButton.setText(REMOVE_ALL);
- removeAllButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- Button swapButton = new Button(centerContainer, SWT.PUSH);
- swapButton.setText(SWAP);
- swapButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- swapButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- handleSwap();
+ if (event.detail == DND.DROP_DEFAULT) {
+ event.detail = (event.operations & DND.DROP_COPY) != 0 ? DND.DROP_COPY: DND.DROP_NONE;
+ }
+ for (int i = 0, n = event.dataTypes.length; i < n; i++) {
+ if (TextTransfer.getInstance().isSupportedType(
+ event.dataTypes[i])) {
+ event.currentDataType = event.dataTypes[i];
+ }
+ }
}
- });
- /* Creates selected items area and sets layout */
- Composite rightContainer = new Composite(editorContainer, SWT.NULL);
- GridLayout rightContainerLayout = new GridLayout();
- rightContainer.setLayout(rightContainerLayout);
- rightContainer.setLayoutData(new GridData());
+ public void dragOver(DropTargetEvent event) {
+ event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_SCROLL;
+ }
- Label selectedMonitorsLabel = new Label(rightContainer, SWT.NONE);
- selectedMonitorsLabel.setText(TimelineChartLables.TIMELINE_EDIT_ITEMS_DLG_SELECTED_ITEMS);
+ public void drop(DropTargetEvent event) {
+ if (TextTransfer.getInstance().isSupportedType(event.currentDataType)) {
- selectedViewer = new TableViewer(rightContainer, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
- selectedViewer.setLabelProvider(new TimelineItemsLableProvider());
- selectedViewer.setContentProvider(new TimelineItemsContentProvider());
- selectedViewer.getTable().setLayoutData(tableGridData);
- rightContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
+ DropTarget target = (DropTarget) event.widget;
+ Table table = (Table) target.getControl();
- /* set Columns */
- setColumns(availableViewer);
- setColumns(selectedViewer);
+ Point point = shell.getDisplay().map(null, table,event.x, event.y);
+ TableItem tblItemTarget = table.getItem(point);
+ if (tblItemTarget == null) {
+ return;
+ }
- /* Set Input */
+ int iNewIndex = table.indexOf(tblItemTarget);
+
+ TableItem[] chartTableItems = chartTableViewer.getTable().getItems();
- // /* Adds listeners */
- addListeners();
+ String strIndexA = null;
+ String strIndexB = null;
- /* Sets enablement of buttons */
- enableButtonsAll(true, true);
- //
- /* Sets elements in list viewer */
- List<String> availableItemsList = TimelineItemsProvider.getAvailableItemsList();
+ strIndexA = chartTableItems[clickedItemIndex].getText(2);
+ strIndexB = chartTableItems[iNewIndex].getText(2);
- if (null == availableItemsList || availableItemsList.isEmpty()) {
- return -1;
- }
+ chartTableItems[iNewIndex].setText(2, strIndexA );
+ chartTableItems[clickedItemIndex].setText(2, strIndexB );
- availableViewer.setInput(availableItemsList);
- //
- List<String> selectedItemsList = TimelineItemsProvider.getSelectedItemsList();
- if (null == selectedItemsList) {
- return -1;
- }
+ strIndexA = chartTableItems[clickedItemIndex].getText(3);
+ strIndexB = chartTableItems[iNewIndex].getText(3);
+
+ chartTableItems[iNewIndex].setText(3, strIndexA );
+ chartTableItems[clickedItemIndex].setText(3, strIndexB );
- int availableMonitorListSize = availableItemsList.size();
- String item = null;
- for (int i = 0; i < availableMonitorListSize; i++) {
- item = availableItemsList.get(i);
- int selectedItemsListSize = selectedItemsList.size();
- for (int j = 0; j < selectedItemsListSize; j++) {
- if (item.equals(selectedItemsList.get(j))) {
- selectedViewer.add(item);
- availableViewer.remove(item);
+ chartTableViewer.getTable().setDragDetect(true);
+ chartTableViewer.getTable().redraw();
}
}
- }
- //
-
- /* Sets enablement of buttons */
- enableButtonsAll(true, true);
+
+
+ });
- /* Open, Cancel */
Composite buttonComp = new Composite(shell, SWT.PUSH);
GridLayout bcfLayout = new GridLayout();
bcfLayout.numColumns = 2;
okButton.addListener(SWT.Selection, okButtonListener);
okButton.setText("OK"); //$NON-NLS-1$
GridData bgd = new GridData();
- bgd.widthHint = 150;
+ bgd.widthHint = 100;
+ bgd.heightHint = 40;
okButton.setLayoutData(bgd);
Button cancelButton = new Button(buttonComp, SWT.PUSH);
cancelButton.addListener(SWT.Selection, cancelButtonListener);
cancelButton.setText("CANCEL"); //$NON-NLS-1$
GridData cbgd = new GridData();
- cbgd.widthHint = 150;
+ cbgd.widthHint = 100;
+ cbgd.heightHint = 40;
cancelButton.setLayoutData(cbgd);
shell.open();
-
+
return 0;
}
-
- private void setColumns(TableViewer viewer) {
- Table table = viewer.getTable();
- table.setHeaderVisible(true);
- table.setLinesVisible(true);
-
- TableColumn category = new TableColumn(table, SWT.NONE);
- category.setMoveable(true);
- category.setResizable(true);
- category.setText(TimelineChartLables.TIMELINE_EDIT_ITEMS_DLG_ITEM_NAME);
- category.setWidth(70);
- }
-
- private void enableButtonsAll(boolean doAddEnablement, boolean doRemoveEnablement) {
- int availableCount = availableViewer.getTable().getItemCount();
- int selectedCount = selectedViewer.getTable().getItemCount();
-
- addAllButton.setEnabled(0 < availableCount);
- removeAllButton.setEnabled(0 < selectedCount);
-
- if (doAddEnablement) {
- enableButtons(availableViewer.getSelection(), true);
- }
- if (doRemoveEnablement) {
- enableButtons(selectedViewer.getSelection(), false);
- }
- }
-
- private void enableButtons(ISelection selection, boolean isAvailable) {
- if (isAvailable) {
- addButton.setEnabled(!selection.isEmpty());
- } else {
- removeButton.setEnabled(!selection.isEmpty());
- }
- }
-
+
private void addListeners() {
- availableViewer.addDoubleClickListener(new IDoubleClickListener() {
- @Override
- public void doubleClick(DoubleClickEvent event) {
- handleAdd();
- }
- });
-
- availableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
- @Override
- public void selectionChanged(SelectionChangedEvent event) {
- enableButtons(event.getSelection(), true);
- }
- });
- selectedViewer.addDoubleClickListener(new IDoubleClickListener() {
- @Override
+ chartTableViewer.addDoubleClickListener(new IDoubleClickListener() {
public void doubleClick(DoubleClickEvent event) {
- handleRemove();
}
});
- selectedViewer.addSelectionChangedListener(new ISelectionChangedListener() {
- @Override
- public void selectionChanged(SelectionChangedEvent event) {
- enableButtons(event.getSelection(), false);
- }
- });
-
- addButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent event) {
- handleAdd();
- }
- });
-
- addAllButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent event) {
- handleAddAll();
- }
- });
-
- removeButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent event) {
- handleRemove();
- }
- });
-
- removeAllButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent event) {
- handleRemoveAll();
- }
- });
+ chartTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent event) {
+ if (chartChangeSatus == true ) {
+
+ Table table = chartTableViewer.getTable();
+ int selectItemIndex = table.getSelectionIndex();
+ TableItem[] chartTableItems = chartTableViewer.getTable().getItems();
+ if (chartTableItems[selectItemIndex].getText(3).equals("selected enable")) {
+ chartTableItems[selectItemIndex].setText(3,"selected disable");
+ } else if (chartTableItems[selectItemIndex].getText(3).equals("selected disable")) {
+ chartTableItems[selectItemIndex].setText(3,"selected enable");
+ }
+ chartTableViewer.getTable().redraw();
+
+ }
+ chartChangeSatus = true;
+ }
+ });
}
- private void handleAdd() {
- IStructuredSelection selection = (IStructuredSelection) availableViewer.getSelection();
- if (!selection.isEmpty()) {
- Table table = availableViewer.getTable();
- int index = table.getSelectionIndex();
- addItems(selection.toList().toArray());
- table.setSelection(index < table.getItemCount() ? index : table.getItemCount() - 1);
- }
-
- enableButtonsAll(true, false);
- }
-
- private void handleAddAll() {
- TableItem[] items = availableViewer.getTable().getItems();
- List<Object> monitors = new ArrayList<Object>();
-
- int itemsLength = items.length;
- for (int i = 0; i < itemsLength; i++) {
- monitors.add(items[i].getData());
- }
-
- if (0 < monitors.size()) {
- addItems(monitors.toArray());
- }
-
- enableButtonsAll(true, false);
- }
-
- private void handleRemove() {
- IStructuredSelection selection = (IStructuredSelection) selectedViewer.getSelection();
- if (!selection.isEmpty()) {
- Table table = selectedViewer.getTable();
- int index = table.getSelectionIndex();
- removeItems(selection.toList().toArray());
- table.setSelection(index < table.getItemCount() ? index : table.getItemCount() - 1);
- }
-
- enableButtonsAll(false, true);
- }
-
- private void handleRemoveAll() {
- TableItem[] items = selectedViewer.getTable().getItems();
- List<Object> monitors = new ArrayList<Object>();
-
- int itemsLength = items.length;
- for (int i = 0; i < itemsLength; i++) {
- monitors.add(items[i].getData());
- }
-
- if (0 < monitors.size()) {
- removeItems(monitors.toArray());
- }
-
- enableButtonsAll(false, true);
- }
-
- private void handleSwap() {
- TableItem[] availableItems = availableViewer.getTable().getItems();
- TableItem[] selectedItems = selectedViewer.getTable().getItems();
- List<Object> monitors = new ArrayList<Object>();
-
- int selectedItemsLength = selectedItems.length;
- for (int i = 0; i < selectedItemsLength; i++) {
- monitors.add(selectedItems[i].getData());
- }
- if (!monitors.isEmpty()) {
- removeItems(monitors.toArray());
- }
-
- monitors.clear();
-
- int availableItemsLength = availableItems.length;
- for (int i = 0; i < availableItemsLength; i++) {
- monitors.add(availableItems[i].getData());
- }
- if (!monitors.isEmpty()) {
- addItems(monitors.toArray());
- }
-
- enableButtonsAll(false, false);
- }
-
- private void addItems(Object[] monitors) {
- selectedViewer.add(monitors);
- availableViewer.remove(monitors);
- }
-
- private void removeItems(Object[] monitors) {
- selectedViewer.remove(monitors);
- availableViewer.add(monitors);
- }
-}
+}
\ No newline at end of file