From c8b4b861557e33c142b8ffa49ccf97e30845c379 Mon Sep 17 00:00:00 2001 From: "hyunsik.noh" Date: Wed, 7 Sep 2011 14:30:49 +0900 Subject: [PATCH] [Title] add combobox for detail info for ConnectionExplorer (need more changes) [Type] Enhancement [Module] sdb connection [Redmine#] #2031 --- .../common/connection/ui/ConnectionExplorer.java | 175 ++++++++++----------- .../ui/ConnectionExplorerLabelProvider.java | 23 +-- .../connection/ui/ConnectionExplorerPanel.java | 106 ++++++++----- 3 files changed, 169 insertions(+), 135 deletions(-) diff --git a/com.samsung.slp.common.connection/src/com/samsung/slp/common/connection/ui/ConnectionExplorer.java b/com.samsung.slp.common.connection/src/com/samsung/slp/common/connection/ui/ConnectionExplorer.java index a6f5882..3fe9ef5 100644 --- a/com.samsung.slp.common.connection/src/com/samsung/slp/common/connection/ui/ConnectionExplorer.java +++ b/com.samsung.slp.common.connection/src/com/samsung/slp/common/connection/ui/ConnectionExplorer.java @@ -1,23 +1,29 @@ package com.samsung.slp.common.connection.ui; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.action.IToolBarManager; -import org.eclipse.jface.action.Separator; -import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.MouseListener; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.IActionBars; -import org.eclipse.ui.ISharedImages; -import org.eclipse.ui.PlatformUI; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.MenuItem; +import org.eclipse.swt.widgets.ToolItem; import org.eclipse.ui.part.ViewPart; import com.samsung.slp.common.connection.ConnectionActivator; import com.samsung.slp.common.connection.ConnectionActivator.ISelectionListener; -import com.samsung.slp.common.connection.ddmlib.AndroidDebugBridge; import com.samsung.slp.common.connection.ddmlib.Client; import com.samsung.slp.common.connection.ddmlib.IDevice; -import com.samsung.slp.common.connection.ddmuilib.DevicePanel; import com.samsung.slp.common.connection.ddmuilib.DevicePanel.IUiSelectionListener; import com.samsung.slp.common.connection.ddmuilib.ImageLoader; import com.samsung.slp.common.connection.ddmuilib.explorer.DeviceExplorer; @@ -40,27 +46,32 @@ public class ConnectionExplorer extends ViewPart implements IUiSelectionListener private final static boolean USE_SELECTED_DEBUG_PORT = true; private ConnectionExplorerPanel mPanel; - private ImageLoader mLoader; - private Shell mParentShell; - private DevicePanel mDeviceList; - - private Action mCaptureAction; - private Action mPushAction; - private Action mPullAction; - private Action mInfoAction; + private ImageLoader mloader; + private Combo mCombo; @Override public void createPartControl(Composite parent) { - createFileExplorerView(parent); - createActions(); - placeActions(); + mloader = ImageLoader.getDdmUiLibLoader(); + + parent.setLayoutData(new GridData(GridData.FILL_VERTICAL)); + parent.setLayout(new GridLayout(1, false)); + + Composite top = new Composite( parent, SWT.NONE ); + top.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL)); + top.setLayout(new GridLayout(3, false)); + + Composite mid = new Composite( parent, SWT.NONE ); + mid.setLayoutData(new GridData(GridData.FILL_BOTH)); + mid.setLayout(new FillLayout()); + + createMenu( top ); + createFileExplorerView(mid); } private void createFileExplorerView(Composite parent) { - mLoader = ImageLoader.getDdmUiLibLoader(); DeviceExplorer.COLUMN_NAME = COLUMN_NAME; DeviceExplorer.COLUMN_SIZE = COLUMN_SIZE; @@ -74,67 +85,60 @@ public class ConnectionExplorer extends ViewPart implements IUiSelectionListener mPanel.createPanel(parent); } - private void createActions(){ + private void createMenu( Composite parent ) + { + Button mButtonPush = new Button( parent, SWT.NONE); + mButtonPush.setImage(mloader.loadImage("Import Log.gif", parent.getDisplay())); + mButtonPush.addSelectionListener(new SelectionListener() + { + + @Override + public void widgetDefaultSelected(SelectionEvent arg0) { + } + + @Override + public void widgetSelected(SelectionEvent arg0) { + mPanel.pushIntoSelection(); + } + + }); - mCaptureAction = new Action("Screen Capture") { - @Override - public void run() { - System.out.println("a"); - } - }; - mCaptureAction.setToolTipText("Screen Capture"); - mCaptureAction.setImageDescriptor( mLoader.loadDescriptor( "Log View.gif")); - - mPushAction = new Action("Push a file") { - @Override - public void run() { - mPanel.pushIntoSelection(); - } - }; - mPushAction.setToolTipText("Push a file onto the device"); - mPushAction.setImageDescriptor( mLoader.loadDescriptor( "Export Log.gif")); - - mPullAction = new Action("Pull a file") { - @Override - public void run() { - mPanel.pullSelection(); - } - }; - mPullAction.setToolTipText("Pull a file from the device"); - mPullAction.setImageDescriptor( mLoader.loadDescriptor( "Import Log.gif")); - - mInfoAction = new Action("Show info about the device") { - @Override - public void run() { - System.out.println("a"); - } - }; - mInfoAction.setToolTipText("Shows Information about the device"); - mInfoAction.setImageDescriptor( mLoader.loadDescriptor( "Import Log.gif")); - - - } - - /** - * Place the actions in the ui. - */ - private final void placeActions() { - IActionBars actionBars = getViewSite().getActionBars(); - - // and then in the toolbar - IToolBarManager toolBarManager = actionBars.getToolBarManager(); - toolBarManager.removeAll(); -// toolBarManager.add(mCaptureAction); - toolBarManager.add(new Separator()); - toolBarManager.add(mPushAction); - toolBarManager.add(new Separator()); - toolBarManager.add(mPullAction); - toolBarManager.add(new Separator()); - toolBarManager.add(mInfoAction); - toolBarManager.add(new Separator()); + Button mButtonPull = new Button( parent, SWT.NONE); + mButtonPull.setImage(mloader.loadImage("Export Log.gif", parent.getDisplay())); - } - + mButtonPull.addSelectionListener(new SelectionListener() + { + + @Override + public void widgetDefaultSelected(SelectionEvent arg0) { + } + + @Override + public void widgetSelected(SelectionEvent arg0) { + mPanel.pullSelection(); + } + + }); + + mCombo = new Combo( parent, SWT.READ_ONLY ); + String comboItems[] = { "Size", "Date", "Time", "Permission", "Info" }; + mCombo.setItems( comboItems ); + mCombo.select(0); + mCombo.addSelectionListener(new SelectionListener() + { + + @Override + public void widgetDefaultSelected(SelectionEvent arg0) { + } + + @Override + public void widgetSelected(SelectionEvent arg0) { + int index = mCombo.getSelectionIndex(); + mPanel.changeColumn(index); + } + }); + } + @Override public void setFocus() { // TODO Auto-generated method stub @@ -142,12 +146,6 @@ public class ConnectionExplorer extends ViewPart implements IUiSelectionListener } @Override - public void selectionChanged(Client selectedClient) { - // TODO Auto-generated method stub - - } - - @Override public void selectionChanged(IDevice selectedDevice) { // TODO Auto-generated method stub // mExplorer.switchDevice(selectedDevice); @@ -160,5 +158,4 @@ public class ConnectionExplorer extends ViewPart implements IUiSelectionListener // update the buttons // doSelectionChanged(selectedDevice); } - } diff --git a/com.samsung.slp.common.connection/src/com/samsung/slp/common/connection/ui/ConnectionExplorerLabelProvider.java b/com.samsung.slp.common.connection/src/com/samsung/slp/common/connection/ui/ConnectionExplorerLabelProvider.java index 5eb4015..d86cb49 100644 --- a/com.samsung.slp.common.connection/src/com/samsung/slp/common/connection/ui/ConnectionExplorerLabelProvider.java +++ b/com.samsung.slp.common.connection/src/com/samsung/slp/common/connection/ui/ConnectionExplorerLabelProvider.java @@ -19,6 +19,7 @@ public class ConnectionExplorerLabelProvider implements ITableLabelProvider { private Image mOtherImage; private Image mEmulatorImage; private Image mDeviceImage; + public static int index; /** * Creates Label provider with custom images. * @@ -79,15 +80,19 @@ public class ConnectionExplorerLabelProvider implements ITableLabelProvider { case 0: return entry.getName(); case 1: - return entry.getSize(); - case 2: - return entry.getDate(); - case 3: - return entry.getTime(); - case 4: - return entry.getPermissions(); - case 5: - return entry.getInfo(); + { + switch(index) + { + case 0: + return entry.getSize(); + case 1: + return entry.getDate(); + case 2: + return entry.getTime(); + case 3: + return entry.getPermissions(); + } + } } } else if (element instanceof IDevice) { IDevice device = (IDevice) element; diff --git a/com.samsung.slp.common.connection/src/com/samsung/slp/common/connection/ui/ConnectionExplorerPanel.java b/com.samsung.slp.common.connection/src/com/samsung/slp/common/connection/ui/ConnectionExplorerPanel.java index e099c16..9a82938 100644 --- a/com.samsung.slp.common.connection/src/com/samsung/slp/common/connection/ui/ConnectionExplorerPanel.java +++ b/com.samsung.slp.common.connection/src/com/samsung/slp/common/connection/ui/ConnectionExplorerPanel.java @@ -17,6 +17,7 @@ import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.TreePath; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.ViewerDropAdapter; import org.eclipse.swt.SWT; @@ -37,6 +38,7 @@ import org.eclipse.swt.widgets.DirectoryDialog; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.FileDialog; import org.eclipse.swt.widgets.Tree; +import org.eclipse.swt.widgets.TreeColumn; import org.eclipse.swt.widgets.TreeItem; import org.eclipse.ui.part.PluginTransfer; import org.eclipse.ui.part.PluginTransferData; @@ -127,14 +129,14 @@ public class ConnectionExplorerPanel extends Panel implements IDeviceChangeListe mTree = new Tree(parent, SWT.MULTI | SWT.FULL_SELECTION | SWT.VIRTUAL); mTree.setHeaderVisible(true); - + IPreferenceStore store = DdmUiPreferences.getStore(); // create columns - TableHelper.createTreeColumn(mTree, "Name", SWT.LEFT, + TableHelper.createTreeColumn(mTree, "FileEntry", SWT.LEFT, "0000drwxrwxrwx", COLUMN_NAME, store); //$NON-NLS-1$ -// TableHelper.createTreeColumn(mTree, "Size", SWT.RIGHT, -// "000000", COLUMN_SIZE, store); //$NON-NLS-1$ + TableHelper.createTreeColumn(mTree, "Size", SWT.RIGHT, + "000000", COLUMN_SIZE, store); //$NON-NLS-1$ // TableHelper.createTreeColumn(mTree, "Date", SWT.LEFT, // "2007-08-14", COLUMN_DATE, store); //$NON-NLS-1$ // TableHelper.createTreeColumn(mTree, "Time", SWT.LEFT, @@ -353,39 +355,39 @@ public class ConnectionExplorerPanel extends Panel implements IDeviceChangeListe } }); - // create and start the refresh thread - new Thread("Device Ls refresher") { - @Override - public void run() { - while (true) { - try { - sleep(FileListingService.REFRESH_RATE); - } catch (InterruptedException e) { - return; - } - - if (mTree != null && mTree.isDisposed() == false) { - Display display = mTree.getDisplay(); - if (display.isDisposed() == false) { - display.asyncExec(new Runnable() { - public void run() { - if (mTree.isDisposed() == false) { - //TODO : SDB fixed - //mTreeViewer.refresh(true); - } - } - }); - } else { - return; - } - } else { - return; - } - } - - } - }.start(); - +// // create and start the refresh thread +// new Thread("Device Ls refresher") { +// @Override +// public void run() { +// while (true) { +// try { +// sleep(FileListingService.REFRESH_RATE); +// } catch (InterruptedException e) { +// return; +// } +// +// if (mTree != null && mTree.isDisposed() == false) { +// Display display = mTree.getDisplay(); +// if (display.isDisposed() == false) { +// display.asyncExec(new Runnable() { +// public void run() { +// if (mTree.isDisposed() == false) { +// //TODO : SDB fixed +// //mTreeViewer.refresh(true); +// } +// } +// }); +// } else { +// return; +// } +// } else { +// return; +// } +// } +// +// } +// }.start(); + return mTree; } @@ -1077,4 +1079,34 @@ public class ConnectionExplorerPanel extends Panel implements IDeviceChangeListe { return mCurrentDevice; } + + public void changeColumn( int index ) + { + TreeColumn[] cols = mTree.getColumns(); + String comboText = null; + TreeItem[] select = mTree.getSelection(); + switch( index ) + { + case 0: + comboText = "Size"; + break; + case 1: + comboText = "Date"; + break; + case 2: + comboText = "Time"; + break; + case 3: + comboText = "Permission"; + break; + case 4: + comboText = "Info"; + break; + } + cols[1].setText( comboText); + ConnectionExplorerLabelProvider.index = index; + + refresh(); + } + } -- 2.7.4