From f4b30e6ae3c6eba3b94b43aa9a9bcc17f4353021 Mon Sep 17 00:00:00 2001 From: greatim Date: Mon, 27 Oct 2014 18:18:52 +0900 Subject: [PATCH] INTERNAL: add common executable tracing feature (temporary) add common executable tracing feature (temporary) Change-Id: I7b96e811a7478c10f5c9748d9ff5700a822c7a8e Signed-off-by: greatim --- .../org/tizen/dynamicanalyzer/project/AppInfo.java | 19 +- .../swap/communicator/Communicator30.java | 3 +- .../ui/DeviceExplorer/DADeviceExplorer.java | 115 ------------ .../dynamicanalyzer/swap/platform/ui/InputRow.java | 2 +- .../common/explorer}/DAFileExplorer.java | 3 +- .../explorer}/DAFileExplorerEmptyCellRenderer.java | 2 +- .../explorer}/DAFileExplorerTableRenderer.java | 3 +- .../common/explorer}/DAFileTreeExplorer.java | 2 +- .../explorer}/DAFileTreeExplorerRenderer.java | 2 +- .../DAFileTreeExplorerToggleRenderer.java | 2 +- .../common/explorer}/DeviceExplorer.java | 192 +++++++++++++-------- .../common/explorer/DeviceExplorerDialog.java} | 19 +- .../explorer/DeviceExplorerTableRenderer.java | 174 +++++++++++++++++++ .../ui => ui/common/explorer}/ExplorerUtil.java | 2 +- .../common/explorer}/FileExplorerDialog.java | 3 +- .../common/explorer/FileTreeExplorerDialog.java} | 6 +- .../dynamicanalyzer/ui/toolbar/ToolbarArea.java | 28 ++- .../toolbar/configuration/BinarySettingsPage.java | 6 +- .../setting/SettingDialogBinarySettingsPage.java | 6 +- 19 files changed, 357 insertions(+), 232 deletions(-) delete mode 100644 org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DeviceExplorer/DADeviceExplorer.java rename org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/{swap/platform/ui/FileExplorer => ui/common/explorer}/DAFileExplorer.java (98%) rename org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/{swap/platform/ui/FileExplorer => ui/common/explorer}/DAFileExplorerEmptyCellRenderer.java (96%) rename org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/{swap/platform/ui/FileExplorer => ui/common/explorer}/DAFileExplorerTableRenderer.java (97%) rename org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/{swap/platform/ui => ui/common/explorer}/DAFileTreeExplorer.java (98%) rename org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/{swap/platform/ui => ui/common/explorer}/DAFileTreeExplorerRenderer.java (97%) rename org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/{swap/platform/ui => ui/common/explorer}/DAFileTreeExplorerToggleRenderer.java (98%) rename org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/{swap/platform/ui/DeviceExplorer => ui/common/explorer}/DeviceExplorer.java (68%) rename org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/{swap/platform/ui/DeviceExplorer/DeviceExplorerDilaog.java => ui/common/explorer/DeviceExplorerDialog.java} (92%) create mode 100644 org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DeviceExplorerTableRenderer.java rename org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/{swap/platform/ui => ui/common/explorer}/ExplorerUtil.java (96%) rename org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/{swap/platform/ui/FileExplorer => ui/common/explorer}/FileExplorerDialog.java (97%) rename org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/{swap/platform/ui/FileExplorerDialog.java => ui/common/explorer/FileTreeExplorerDialog.java} (96%) diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/AppInfo.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/AppInfo.java index 4124449..86b1347 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/AppInfo.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/AppInfo.java @@ -104,10 +104,12 @@ public class AppInfo { private ElfSymbolExtractor symbolExtractor = new ElfSymbolExtractor(); + // temporary information + private String execPath = null; private String execFileName = null; + private List localPackagePath = null; private Map runningProcesses = null; - private String execPath = null; private static List readlinkResult = new ArrayList(); private List properties = new ArrayList(); @@ -157,6 +159,10 @@ public class AppInfo { public void setInfo(int index, String data) { properties.set(index, data); + if (index == PROPERTY.EXEC.index) { + execFileName = null; + execPath = null; + } } public String getInfo(int index) { @@ -327,7 +333,7 @@ public class AppInfo { public String getPackageId() { return properties.get(PROPERTY.PACKAGE.index); } - + public String getLabel() { return properties.get(PROPERTY.LABEL.index); } @@ -350,13 +356,10 @@ public class AppInfo { readlinkResult.add(appLines[i]); } } - }); // get actual file path using da readlink command (inside target - // platform) + }); // get actual file path using da readlink command (inside target platform) - if (readlinkResult.isEmpty() || readlinkResult.size() > 1) { // fail - // to - // get - // path + if (readlinkResult.isEmpty() || readlinkResult.size() > 1) { + // fail to get path if (getAppType().contains(APPTYPE_CPP)) { exec = exec.replaceFirst(AnalyzerConstants.TIZEN_APP_PATH, AnalyzerConstants.TIZEN_USR_APP_PATH); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/communicator/Communicator30.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/communicator/Communicator30.java index 7d80f24..73af2fa 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/communicator/Communicator30.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/communicator/Communicator30.java @@ -196,7 +196,8 @@ public class Communicator30 extends BaseCommunicator { UserSpaceInst userSpaceInst = getUserSpaceInst(); Logger.performance("TEST", "Start Trace", "Set application inst"); - if (userSpaceInst == null) { + if (userSpaceInst == null || userSpaceInst.getAppInstList().isEmpty()) { + StartProcessManager.getInstance().setValue(100); Logger.error("cannot get user space inst"); return HostResult.ERR_MSG_START_FAIL; } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DeviceExplorer/DADeviceExplorer.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DeviceExplorer/DADeviceExplorer.java deleted file mode 100644 index bac36d4..0000000 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DeviceExplorer/DADeviceExplorer.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Dynamic Analyzer - * - * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: - * Jaewon Lim - * Juyoung Kim - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Contributors: - * - S-Core Co., Ltd - * - */ - -package org.tizen.dynamicanalyzer.swap.platform.ui.DeviceExplorer; - -import org.eclipse.nebula.widgets.grid.GridItem; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Composite; -import org.tizen.dynamicanalyzer.swap.platform.ui.ExplorerUtil; -import org.tizen.dynamicanalyzer.util.Logger; -import org.tizen.sdblib.service.FileEntry; -import org.tizen.sdblib.service.FileEntryType; - -public class DADeviceExplorer extends DeviceExplorer { - public DADeviceExplorer(Composite parent) { - super(parent); - } - - @Override - public void updateData() { - if (null == current) { - if (null == root) { - Logger.debug("Root is empty"); - return; - } - current = root; - } - table.removeAll(); - inputText.setText(current.getFullPath()); - - if (!current.getFullPath().equals(root.getFullPath())) { - GridItem parentItem = new GridItem(table, SWT.NONE); - parentItem.setText(ExplorerUtil.PARENT_STR); - parentItem.setData(ExplorerUtil.DATA_FIEL_KEY, current.getParent()); - } - FileEntry[] children = current.getChildren(); - int selectionIndex = -1; - - if (null != children) { - int size = children.length; - // dirs - for (int i = 0; i < size; i++) { - FileEntry child = children[i]; - if (!child.isDirectory() - || child.getType() == FileEntryType.DirectoryLink) { - continue; - } - - GridItem item = new GridItem(table, SWT.NONE); - item.setText(child.getName()); - item.setData(ExplorerUtil.DATA_FIEL_KEY, child); - if (null != selectionStr - && selectionStr.equals(child.getFullPath())) { - int index = table.indexOf(item); - // table.getVerticalBar().setSelection(index); - table.setSelection(index); - selected = child; - inputText.setText(child.getFullPath()); - selectionIndex = index; - } - } - - // files - for (int i = 0; i < size; i++) { - FileEntry child = children[i]; - if (child.isDirectory() - || child.getType() == FileEntryType.Link) { - continue; - } - - if (null != filter && !child.getName().contains(filter)) { - continue; - } - GridItem item = new GridItem(table, SWT.NONE); - item.setText(child.getName()); - item.setData(ExplorerUtil.DATA_FIEL_KEY, child); - if (null != selectionStr - && selectionStr.equals(child.getFullPath())) { - int index = table.indexOf(item); - table.setSelection(index); - selected = child; - inputText.setText(child.getFullPath()); - selectionIndex = index; - } - } - table.getVerticalBar().setMaximum(size); - table.getVerticalBar().setSelection(selectionIndex); - } - table.update(); - } - -} diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/InputRow.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/InputRow.java index 0f5d68c..2f62cfe 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/InputRow.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/InputRow.java @@ -44,7 +44,7 @@ import org.tizen.dynamicanalyzer.resources.FontResources; import org.tizen.dynamicanalyzer.resources.ImageResources; import org.tizen.dynamicanalyzer.swap.platform.BinarySettingData; import org.tizen.dynamicanalyzer.swap.platform.BinarySettingManager; -import org.tizen.dynamicanalyzer.swap.platform.ui.FileExplorer.FileExplorerDialog; +import org.tizen.dynamicanalyzer.ui.common.explorer.FileExplorerDialog; import org.tizen.dynamicanalyzer.util.CommonUtil; import org.tizen.dynamicanalyzer.widgets.button.DACustomButton; import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonClickEventListener; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/FileExplorer/DAFileExplorer.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileExplorer.java similarity index 98% rename from org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/FileExplorer/DAFileExplorer.java rename to org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileExplorer.java index 6e6f9c0..764cf60 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/FileExplorer/DAFileExplorer.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileExplorer.java @@ -25,7 +25,7 @@ * */ -package org.tizen.dynamicanalyzer.swap.platform.ui.FileExplorer; +package org.tizen.dynamicanalyzer.ui.common.explorer; import java.io.File; import java.util.ArrayList; @@ -49,7 +49,6 @@ import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Composite; import org.tizen.dynamicanalyzer.constant.CommonConstants; import org.tizen.dynamicanalyzer.resources.ColorResources; -import org.tizen.dynamicanalyzer.swap.platform.ui.ExplorerUtil; import org.tizen.dynamicanalyzer.ui.widgets.DAGrid; import org.tizen.dynamicanalyzer.ui.widgets.table.DATableHeaderRenderer; import org.tizen.dynamicanalyzer.util.Logger; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/FileExplorer/DAFileExplorerEmptyCellRenderer.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileExplorerEmptyCellRenderer.java similarity index 96% rename from org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/FileExplorer/DAFileExplorerEmptyCellRenderer.java rename to org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileExplorerEmptyCellRenderer.java index d703c61..6fbe32b 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/FileExplorer/DAFileExplorerEmptyCellRenderer.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileExplorerEmptyCellRenderer.java @@ -25,7 +25,7 @@ * */ -package org.tizen.dynamicanalyzer.swap.platform.ui.FileExplorer; +package org.tizen.dynamicanalyzer.ui.common.explorer; import org.eclipse.nebula.widgets.grid.Grid; import org.eclipse.swt.SWT; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/FileExplorer/DAFileExplorerTableRenderer.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileExplorerTableRenderer.java similarity index 97% rename from org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/FileExplorer/DAFileExplorerTableRenderer.java rename to org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileExplorerTableRenderer.java index 994afdf..0780165 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/FileExplorer/DAFileExplorerTableRenderer.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileExplorerTableRenderer.java @@ -24,7 +24,7 @@ * - S-Core Co., Ltd * */ -package org.tizen.dynamicanalyzer.swap.platform.ui.FileExplorer; +package org.tizen.dynamicanalyzer.ui.common.explorer; import java.io.File; @@ -37,7 +37,6 @@ import org.eclipse.swt.graphics.Rectangle; import org.tizen.dynamicanalyzer.resources.ColorResources; import org.tizen.dynamicanalyzer.resources.FontResources; import org.tizen.dynamicanalyzer.resources.ImageResources; -import org.tizen.dynamicanalyzer.swap.platform.ui.ExplorerUtil; import org.tizen.dynamicanalyzer.ui.widgets.table.DATableCellRenderer; import org.tizen.sdblib.service.FileEntry; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DAFileTreeExplorer.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileTreeExplorer.java similarity index 98% rename from org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DAFileTreeExplorer.java rename to org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileTreeExplorer.java index 639c73c..777940a 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DAFileTreeExplorer.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileTreeExplorer.java @@ -24,7 +24,7 @@ * - S-Core Co., Ltd * */ -package org.tizen.dynamicanalyzer.swap.platform.ui; +package org.tizen.dynamicanalyzer.ui.common.explorer; import java.util.HashMap; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DAFileTreeExplorerRenderer.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileTreeExplorerRenderer.java similarity index 97% rename from org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DAFileTreeExplorerRenderer.java rename to org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileTreeExplorerRenderer.java index a255b85..1fd2133 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DAFileTreeExplorerRenderer.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileTreeExplorerRenderer.java @@ -25,7 +25,7 @@ * */ -package org.tizen.dynamicanalyzer.swap.platform.ui; +package org.tizen.dynamicanalyzer.ui.common.explorer; import org.eclipse.nebula.widgets.grid.GridItem; import org.tizen.dynamicanalyzer.ui.widgets.table.DATableCellRenderer; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DAFileTreeExplorerToggleRenderer.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileTreeExplorerToggleRenderer.java similarity index 98% rename from org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DAFileTreeExplorerToggleRenderer.java rename to org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileTreeExplorerToggleRenderer.java index 04f2d64..18a5dea 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DAFileTreeExplorerToggleRenderer.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DAFileTreeExplorerToggleRenderer.java @@ -24,7 +24,7 @@ * - S-Core Co., Ltd * */ -package org.tizen.dynamicanalyzer.swap.platform.ui; +package org.tizen.dynamicanalyzer.ui.common.explorer; import org.eclipse.nebula.widgets.grid.GridItem; import org.eclipse.swt.graphics.Font; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DeviceExplorer/DeviceExplorer.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DeviceExplorer.java similarity index 68% rename from org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DeviceExplorer/DeviceExplorer.java rename to org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DeviceExplorer.java index a719123..05a35a2 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DeviceExplorer/DeviceExplorer.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DeviceExplorer.java @@ -25,7 +25,7 @@ * */ -package org.tizen.dynamicanalyzer.swap.platform.ui.DeviceExplorer; +package org.tizen.dynamicanalyzer.ui.common.explorer; import java.util.ArrayList; import java.util.List; @@ -48,9 +48,6 @@ import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Composite; import org.tizen.dynamicanalyzer.constant.CommonConstants; import org.tizen.dynamicanalyzer.resources.ColorResources; -import org.tizen.dynamicanalyzer.swap.platform.ui.ExplorerUtil; -import org.tizen.dynamicanalyzer.swap.platform.ui.FileExplorer.DAFileExplorerEmptyCellRenderer; -import org.tizen.dynamicanalyzer.swap.platform.ui.FileExplorer.DAFileExplorerTableRenderer; import org.tizen.dynamicanalyzer.ui.widgets.DAGrid; import org.tizen.dynamicanalyzer.ui.widgets.table.DATableHeaderRenderer; import org.tizen.dynamicanalyzer.util.Logger; @@ -67,16 +64,21 @@ public class DeviceExplorer extends Composite { protected static int FILE = 1; protected static int DIRECTORY = 2; + private static int PERMISSION_STR_LENGTH = 10; + private static int PERMISSION_FILTER_LENGTH = 3; + protected Grid table = null; protected DAText inputText = null; protected DACustomButton goButton = null; protected IDevice device = null; protected FileEntry root = null; - protected FileEntry current = null; + protected FileEntry currentDir = null; protected FileEntry selected = null; - protected String filter = null; + protected String nameFilter = null; + protected String permissionFilterStr = null; + private int permissionFilter = 0; // all permission is allowed protected String selectionStr = null; @@ -86,15 +88,14 @@ public class DeviceExplorer extends Composite { public void widgetSelected(SelectionEvent e) { GridItem[] selections = table.getSelection(); GridItem selection = selections[0]; - FileEntry file = (FileEntry) selection - .getData(ExplorerUtil.DATA_FIEL_KEY); + FileEntry file = (FileEntry) selection.getData(ExplorerUtil.DATA_FIEL_KEY); + Logger.debug("Selected : " + file.getFullPath()); selected = file; - inputText.setText(selected.getFullPath()); - inputText.setBackground(ColorResources.WHITE); - int length = inputText.getText().length(); - inputText.getControl().setSelection(length, length); + // inputText.setText(selected.getFullPath()); + inputText.setBackground(ColorResources.WHITE); + inputText.getControl().setSelection(inputText.getText().length()); } @Override @@ -107,20 +108,18 @@ public class DeviceExplorer extends Composite { @Override public void mouseUp(MouseEvent e) { - // TODO Auto-generated method stub } @Override public void mouseDown(MouseEvent e) { - // TODO Auto-generated method stub } @Override public void mouseDoubleClick(MouseEvent e) { if (selected.isDirectory() || selected.isRoot()) { - current = selected; + currentDir = selected; updateData(); } } @@ -138,10 +137,9 @@ public class DeviceExplorer extends Composite { @Override public void keyReleased(KeyEvent e) { - if (e.keyCode == 13) { + if (e.keyCode == 13) { // press enter adjustInput(); - inputText.getControl().setSelection( - inputText.getText().length()); + inputText.getControl().setSelection(inputText.getText().length()); } else { } @@ -156,12 +154,12 @@ public class DeviceExplorer extends Composite { @Override public void focusLost(FocusEvent e) { - // TODO Auto-generated method stub } @Override public void focusGained(FocusEvent e) { + // remove selection GridItem[] selections = new GridItem[0]; table.setSelection(selections); @@ -170,7 +168,7 @@ public class DeviceExplorer extends Composite { } }; - public DeviceExplorer(Composite parent) { + public DeviceExplorer(Composite parent, boolean multiSelection) { super(parent, SWT.NONE); this.setLayout(new FormLayout()); this.setBackground(ColorResources.DIALOG_BG_UPPER); @@ -195,12 +193,19 @@ public class DeviceExplorer extends Composite { goButton.setText("Go"); goButton.addClickListener(goButtonClickListener); - table = new DAGrid(this, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL); + int style = SWT.BORDER | SWT.V_SCROLL; + if (multiSelection) { + style |= SWT.MULTI; + } else { + style |= SWT.SINGLE; + } + + table = new DAGrid(this, style); table.setBackground(ColorResources.TABLE_CONTENTS_NORMAL); table.setForeground(ColorResources.TABLE_CONTENTS_FONT_COLOR); setColumns(); table.setEmptyCellRenderer(new DAFileExplorerEmptyCellRenderer()); - table.setItemHeight(46); + table.setItemHeight(32); data = new FormData(); data.top = new FormAttachment(inputText.getControl(), 7); @@ -213,31 +218,31 @@ public class DeviceExplorer extends Composite { table.addMouseListener(tableMouseListener); } - public void setColumns() { + private void setColumns() { GridColumn fileColumn = new GridColumn(table, SWT.NONE); - fileColumn.setCellRenderer(new DAFileExplorerTableRenderer()); + fileColumn.setCellRenderer(new DeviceExplorerTableRenderer()); fileColumn.setHeaderRenderer(new DATableHeaderRenderer()); fileColumn.setText("File"); fileColumn.setWidth(450); } public void updateData() { - if (null == current) { + if (null == currentDir) { if (null == root) { Logger.debug("Root is empty"); return; } - current = root; + currentDir = root; } table.removeAll(); - inputText.setText(current.getFullPath()); + inputText.setText(currentDir.getFullPath()); - if (!current.getFullPath().equals(root.getFullPath())) { + if (!currentDir.getFullPath().equals(root.getFullPath())) { GridItem parentItem = new GridItem(table, SWT.NONE); parentItem.setText(ExplorerUtil.PARENT_STR); - parentItem.setData(ExplorerUtil.DATA_FIEL_KEY, current.getParent()); + parentItem.setData(ExplorerUtil.DATA_FIEL_KEY, currentDir.getParent()); } - FileEntry[] children = current.getChildren(); + FileEntry[] children = currentDir.getChildren(); int selectionIndex = -1; if (null != children) { @@ -245,17 +250,15 @@ public class DeviceExplorer extends Composite { // dirs for (int i = 0; i < size; i++) { FileEntry child = children[i]; - if (!child.isDirectory()) { + if (!child.isDirectory() || child.getType() == FileEntryType.DirectoryLink) { continue; } GridItem item = new GridItem(table, SWT.NONE); item.setText(child.getName()); item.setData(ExplorerUtil.DATA_FIEL_KEY, child); - if (null != selectionStr - && selectionStr.equals(child.getFullPath())) { + if (null != selectionStr && selectionStr.equals(child.getFullPath())) { int index = table.indexOf(item); - // table.getVerticalBar().setSelection(index); table.setSelection(index); selected = child; inputText.setText(child.getFullPath()); @@ -266,20 +269,26 @@ public class DeviceExplorer extends Composite { // files for (int i = 0; i < size; i++) { FileEntry child = children[i]; - if (child.isDirectory()) { + if (child.isDirectory() || child.getType() == FileEntryType.Link) { continue; } - if (null != filter && !child.getName().contains(filter)) { + if (null != nameFilter && !child.getName().contains(nameFilter)) { continue; } + + if (permissionFilter != 0) { + int permission = getPermission(child.getPermissions()); + if((permission & permissionFilter) != permissionFilter) { + continue; + } + } + GridItem item = new GridItem(table, SWT.NONE); item.setText(child.getName()); item.setData(ExplorerUtil.DATA_FIEL_KEY, child); - if (null != selectionStr - && selectionStr.equals(child.getFullPath())) { + if (null != selectionStr && selectionStr.equals(child.getFullPath())) { int index = table.indexOf(item); - // table.getVerticalBar().setSelection(index); table.setSelection(index); selected = child; inputText.setText(child.getFullPath()); @@ -295,8 +304,7 @@ public class DeviceExplorer extends Composite { public void setRoot(String r) { if (null != device && null != r && !r.isEmpty()) { FileEntry rootDir = device.getFileEntry(r); - if (null == rootDir - || (!rootDir.isDirectory() && !rootDir.isRoot())) { + if (null == rootDir || (!rootDir.isDirectory() && !rootDir.isRoot())) { Logger.debug("root path is invalid"); return; } else { @@ -305,8 +313,8 @@ public class DeviceExplorer extends Composite { } } - public Grid getTable() { - return table; + public void addTableMouseListener(MouseListener listener) { + table.addMouseListener(listener); } public List getSelection() { @@ -321,12 +329,10 @@ public class DeviceExplorer extends Composite { continue; } - FileEntry entry = (FileEntry) selection - .getData(ExplorerUtil.DATA_FIEL_KEY); + FileEntry entry = (FileEntry) selection.getData(ExplorerUtil.DATA_FIEL_KEY); fileEntries.add(entry); } - } else if (null != inputText.getText() - && !inputText.getText().isEmpty()) { + } else if (null != inputText.getText() && !inputText.getText().isEmpty()) { String path = inputText.getText(); FileEntry file = device.getFileEntry(path); if (null != file) { @@ -348,49 +354,93 @@ public class DeviceExplorer extends Composite { Logger.debug("invalid path"); return result; } else if (!file.isDirectory() && !file.isRoot()) { - current = file.getParent(); + currentDir = file.getParent(); selectionStr = file.getFullPath(); result = FILE; } else { - current = file; + currentDir = file; selectionStr = CommonConstants.EMPTY; result = DIRECTORY; } updateData(); - return result; } return result; } private void adjustInput() { + String errorstr = null; + String path = inputText.getText(); - if (null == path || path.isEmpty()) { - Logger.debug("path must not empty"); - // inputText.setBackground(ColorResources.RED); - // info.setText("Empty path"); - inputText.setText(current.getFullPath()); - return; + if (null != path && !path.isEmpty()) { + if (path.contains(root.getFullPath())) { + if (setCurrent(path) != FAIL) { + inputText.setBackground(ColorResources.WHITE); + } else { + errorstr = "Failed to set current directory"; + } + } else { + errorstr = "Out of root range"; + } + } else { + errorstr = "path must not empty"; } - if (!path.contains(root.getFullPath())) { - Logger.debug("Out of root range"); + if (errorstr != null) { + Logger.debug(errorstr); // inputText.setBackground(ColorResources.RED); - // info.setText("Out of root range"); - inputText.setText(current.getFullPath()); - return; + // info.setText(errorstr); + inputText.setText(currentDir.getFullPath()); } - - int ret = setCurrent(path); - if (ret != FAIL) { - inputText.setBackground(ColorResources.WHITE); - } else { - // inputText.setBackground(ColorResources.RED); - // info.setText("Invalid path"); - inputText.setText(current.getFullPath()); + } + + private int getPermission(String permissionStr) { + int permission = 0; + if(permissionStr != null && permissionStr.length() == PERMISSION_STR_LENGTH) { + for (int i = 1; i < permissionStr.length(); i++) { + permission = permission << 1; + switch (permissionStr.charAt(i)) { + case 'r': + case 'w': + case 'x': + permission = permission | 1; + break; + default: + break; + } + } } + + return permission; + } + + /** + * set filename filter to filter file entry by file name + * + * @param filter + * file name filter string + */ + public void setNameFilter(String filter) { + this.nameFilter = filter; } - public void setFilterString(String filter) { - this.filter = filter; + /** + * set permission filter to filter file entry by permission + * + * @param filter + * permission filter string (ex. 755) + */ + public void setPermissionFilter(String filter) { + if (filter == null || filter.length() == PERMISSION_FILTER_LENGTH) { + this.permissionFilterStr = filter; + + if (filter != null) { + int userclass = filter.charAt(0) - '0'; + int groupclass = filter.charAt(1) - '0'; + int otherclass = filter.charAt(2) - '0'; + permissionFilter = userclass << 6 | groupclass << 3 | otherclass; + } else { + permissionFilter = 0; + } + } } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DeviceExplorer/DeviceExplorerDilaog.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DeviceExplorerDialog.java similarity index 92% rename from org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DeviceExplorer/DeviceExplorerDilaog.java rename to org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DeviceExplorerDialog.java index 5031526..b1ea206 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/DeviceExplorer/DeviceExplorerDilaog.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DeviceExplorerDialog.java @@ -25,7 +25,7 @@ * */ -package org.tizen.dynamicanalyzer.swap.platform.ui.DeviceExplorer; +package org.tizen.dynamicanalyzer.ui.common.explorer; import java.util.ArrayList; import java.util.List; @@ -47,26 +47,25 @@ import org.tizen.dynamicanalyzer.appearance.DesignConstants; import org.tizen.dynamicanalyzer.common.Global; import org.tizen.dynamicanalyzer.nl.WidgetLabels; import org.tizen.dynamicanalyzer.resources.ColorResources; -import org.tizen.dynamicanalyzer.swap.platform.ui.ExplorerUtil; import org.tizen.dynamicanalyzer.widgets.button.DACustomButton; import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonClickEventListener; import org.tizen.dynamicanalyzer.widgets.da.base.DAButton; import org.tizen.dynamicanalyzer.widgets.da.base.DAMessageBox; import org.tizen.sdblib.service.FileEntry; -public class DeviceExplorerDilaog extends DAMessageBox { +public class DeviceExplorerDialog extends DAMessageBox { private DeviceExplorer explorer = null; private DACustomButton okButton = null; private DACustomButton cancelButton = null; - public DeviceExplorerDilaog(Shell parentShell) { + public DeviceExplorerDialog(Shell parentShell, boolean multiSelection) { super(parentShell); shell.setLayout(new FormLayout()); shell.setSize(446, 600); shell.setBackground(ColorResources.DIALOG_BG_UPPER); shell.setText("Select binary"); - explorer = new DADeviceExplorer(shell); + explorer = new DeviceExplorer(shell, multiSelection); FormData data = new FormData(); data.top = new FormAttachment(0, 17); data.left = new FormAttachment(0, 6); @@ -138,7 +137,7 @@ public class DeviceExplorerDilaog extends DAMessageBox { } }); - explorer.getTable().addMouseListener(new MouseListener() { + explorer.addTableMouseListener(new MouseListener() { @Override public void mouseUp(MouseEvent e) { @@ -184,7 +183,11 @@ public class DeviceExplorerDilaog extends DAMessageBox { return explorer; } - public void setFilter(String filter) { - explorer.setFilterString(filter); + public void setNameFilter(String filter) { + explorer.setNameFilter(filter); + } + + public void setPermissionFilter(String filter) { + explorer.setPermissionFilter(filter); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DeviceExplorerTableRenderer.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DeviceExplorerTableRenderer.java new file mode 100644 index 0000000..a636d08 --- /dev/null +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/DeviceExplorerTableRenderer.java @@ -0,0 +1,174 @@ +package org.tizen.dynamicanalyzer.ui.common.explorer; + +import java.io.File; + +import org.eclipse.nebula.widgets.grid.GridItem; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.Rectangle; +import org.tizen.dynamicanalyzer.resources.ColorResources; +import org.tizen.dynamicanalyzer.resources.FontResources; +import org.tizen.dynamicanalyzer.resources.ImageResources; +import org.tizen.dynamicanalyzer.ui.widgets.table.DATableCellRenderer; +import org.tizen.sdblib.service.FileEntry; + +public class DeviceExplorerTableRenderer extends DATableCellRenderer { + @Override + public void paint(GC gc, Object value) { + textTopMargin = 8; + + GridItem item = (GridItem) value; + + gc.setFont(item.getFont(getColumn())); + + boolean drawAsSelected = isSelected(); + + boolean drawBackground = true; + + if (isCellSelected()) { + drawAsSelected = true;// (!isCellFocus()); + } + + if (drawAsSelected) { + gc.setForeground(ColorResources.EXPLORER_SELECT_START); + gc.setBackground(ColorResources.EXPLORER_SELECT_END); + } else { + if (item.getParent().isEnabled()) { + gc.setBackground(ColorResources.EXPLORER_CELL_BG); + } else { + gc.setBackground(getDisplay().getSystemColor( + SWT.COLOR_WIDGET_BACKGROUND)); + } + } + + if (drawBackground && drawAsSelected) { + gc.fillGradientRectangle(getBounds().x, getBounds().y, + getBounds().width, getBounds().height, true); + } else if (drawBackground) { + gc.fillRectangle(getBounds().x, getBounds().y + 1, + getBounds().width, getBounds().height); + } + + int x = leftMargin; + + if (isCheck()) { + checkRenderer.setChecked(item.getChecked(getColumn())); + checkRenderer.setGrayed(item.getGrayed(getColumn())); + if (!item.getParent().isEnabled()) { + checkRenderer.setGrayed(true); + } + checkRenderer.setHover(getHoverDetail().equals("check")); //$NON-NLS-1$ + + checkRenderer.setBounds(getBounds().x + x, + (getBounds().height - checkRenderer.getBounds().height) / 2 + + getBounds().y, checkRenderer.getBounds().width, + checkRenderer.getBounds().height); + checkRenderer.paint(gc, null); + + x += checkRenderer.getBounds().width + insideMargin; + } + + int width = getBounds().width - x - rightMargin; + + String text = item.getText(getColumn()); + + if (getAlignment() == SWT.RIGHT) { + int len = gc.stringExtent(text).x; + if (len < width) { + x += width - len; + } + } else if (getAlignment() == SWT.CENTER) { + int len = gc.stringExtent(text).x; + if (len < width) { + x += (width - len) / 2; + } + } + + if (drawAsSelected) { + gc.setForeground(ColorResources.BLACK); + } else { + Color fontColor = item.getForeground(); + if (null != fontColor) { + gc.setForeground(item.getForeground()); + } else { + gc.setForeground(ColorResources.BLACK); + } + } + + Image image = null; + Object object = item.getData(ExplorerUtil.DATA_FIEL_KEY); + if (object instanceof File) { + File file = (File) object; + if (file.isDirectory()) { + image = ImageResources.FILE_TYPE_DIR; + } else if (file.isFile()) { + image = ImageResources.FILE_TYPE_FILE; + } else { + image = ImageResources.FILE_TYPE_ETC; + } + } else if (object instanceof FileEntry) { + FileEntry entry = (FileEntry) object; + switch (entry.getType()) { + case File: + image = ImageResources.FILE_TYPE_FILE; + break; + case Link: + image = ImageResources.FILE_TYPE_FILE_LINK; + break; + case Directory: + image = ImageResources.FILE_TYPE_DIR; + break; + case DirectoryLink: + image = ImageResources.FILE_TYPE_DIR_LINK; + break; + case RootEmulator: + image = ImageResources.FILE_TYPE_EMULATOR; + break; + case RootDevice: + image = ImageResources.FILE_TYPE_DEVICE; + break; + default: + image = ImageResources.FILE_TYPE_ETC; + break; + } + } + + int imageTopMargin = 0; + int imageLeftMargin = 16; + int textLeftMargin = 66; + Rectangle rect = getBounds(); + gc.drawImage(image, rect.x + imageLeftMargin, rect.y + imageTopMargin); + gc.setFont(FontResources.getDADefaultFont()); + gc.drawText(text, rect.x + textLeftMargin, rect.y + textTopMargin, true); + + if (item.getParent().getLinesVisible()) { + gc.setForeground(ColorResources.EXPLORER_CELL_LINE); + gc.drawLine(rect.x, rect.y + rect.height, + rect.x + rect.width - 1, rect.y + + rect.height); + // gc.drawLine(getBounds().x + getBounds().width - 1, getBounds().y, + // getBounds().x + getBounds().width - 1, getBounds().y + // + getBounds().height); + } + + if (isCellFocus()) { + Rectangle focusRect = new Rectangle(getBounds().x - 1, + getBounds().y - 1, getBounds().width, + getBounds().height + 1); + + gc.setForeground(ColorResources.RED); + gc.drawRectangle(focusRect); + + if (isFocus()) { + focusRect.x++; + focusRect.width -= 2; + focusRect.y++; + focusRect.height -= 2; + + gc.drawRectangle(focusRect); + } + } + } +} diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/ExplorerUtil.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/ExplorerUtil.java similarity index 96% rename from org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/ExplorerUtil.java rename to org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/ExplorerUtil.java index 617441d..6bb91a6 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/ExplorerUtil.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/ExplorerUtil.java @@ -25,7 +25,7 @@ * */ -package org.tizen.dynamicanalyzer.swap.platform.ui; +package org.tizen.dynamicanalyzer.ui.common.explorer; import java.io.File; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/FileExplorer/FileExplorerDialog.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/FileExplorerDialog.java similarity index 97% rename from org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/FileExplorer/FileExplorerDialog.java rename to org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/FileExplorerDialog.java index 2bda2ee..7bdcf6f 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/FileExplorer/FileExplorerDialog.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/FileExplorerDialog.java @@ -24,7 +24,7 @@ * - S-Core Co., Ltd * */ -package org.tizen.dynamicanalyzer.swap.platform.ui.FileExplorer; +package org.tizen.dynamicanalyzer.ui.common.explorer; import java.io.File; import java.util.ArrayList; @@ -46,7 +46,6 @@ import org.eclipse.swt.widgets.Shell; import org.tizen.dynamicanalyzer.appearance.DesignConstants; import org.tizen.dynamicanalyzer.nl.WidgetLabels; import org.tizen.dynamicanalyzer.resources.ColorResources; -import org.tizen.dynamicanalyzer.swap.platform.ui.ExplorerUtil; import org.tizen.dynamicanalyzer.widgets.button.DACustomButton; import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonClickEventListener; import org.tizen.dynamicanalyzer.widgets.da.base.DAButton; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/FileExplorerDialog.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/FileTreeExplorerDialog.java similarity index 96% rename from org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/FileExplorerDialog.java rename to org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/FileTreeExplorerDialog.java index ca5857a..face04b 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/platform/ui/FileExplorerDialog.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/common/explorer/FileTreeExplorerDialog.java @@ -24,7 +24,7 @@ * - S-Core Co., Ltd * */ -package org.tizen.dynamicanalyzer.swap.platform.ui; +package org.tizen.dynamicanalyzer.ui.common.explorer; import org.eclipse.nebula.widgets.grid.Grid; import org.eclipse.nebula.widgets.grid.GridItem; @@ -43,12 +43,12 @@ import org.tizen.dynamicanalyzer.widgets.da.base.DAButton; import org.tizen.dynamicanalyzer.widgets.da.base.DAMessageBox; import org.tizen.sdblib.service.FileEntry; -public class FileExplorerDialog extends DAMessageBox { +public class FileTreeExplorerDialog extends DAMessageBox { private DAFileTreeExplorer explorerTree = null; private DACustomButton okButton = null; private DACustomButton cancelButton = null; - public FileExplorerDialog(Shell parentShell) { + public FileTreeExplorerDialog(Shell parentShell) { super(parentShell); shell.setLayout(new FormLayout()); shell.setSize(500, 600); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java index a62167d..d0884f3 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/ToolbarArea.java @@ -63,6 +63,7 @@ import org.tizen.dynamicanalyzer.resources.ColorResources; import org.tizen.dynamicanalyzer.resources.FontResources; import org.tizen.dynamicanalyzer.resources.ImageResources; import org.tizen.dynamicanalyzer.shortcut.ShortCutManager; +import org.tizen.dynamicanalyzer.ui.common.explorer.DeviceExplorerDialog; import org.tizen.dynamicanalyzer.ui.page.BaseView; import org.tizen.dynamicanalyzer.ui.timeline.TimelinePage; import org.tizen.dynamicanalyzer.ui.toolbar.opentrace.OpenTraceDialog; @@ -81,6 +82,7 @@ import org.tizen.dynamicanalyzer.widgets.combo.DACustomComboSelectionListener; import org.tizen.dynamicanalyzer.widgets.da.base.DADialog; import org.tizen.dynamicanalyzer.widgets.timer.TimerClock; import org.tizen.sdblib.IDevice; +import org.tizen.sdblib.service.FileEntry; public class ToolbarArea { public static final int START_BUTTON = 0; @@ -123,9 +125,6 @@ public class ToolbarArea { private static final int TIMER_WIDTH = 122; - public static boolean bThreadPageWork = false; // FIXME - public static boolean bUIPageWork = false; // FIXME - public static final int TOOLBAR_STATE_RECORDING = 0; public static final int TOOLBAR_STATE_READY = 1; @@ -282,7 +281,7 @@ public class ToolbarArea { @Override public void selectionEvent(DACustomCombo combo) { - String appName = combo.getText(); + final String appName = combo.getText(); if (null != appName && !appName.isEmpty()) { boolean enablestart = true; @@ -303,7 +302,23 @@ public class ToolbarArea { enablestart = false; } } else if (appName.equals(AnalyzerConstants.COMMON_EXECUTABLE_LABEL)) { - // TODO : implement to select common executable + Shell shell = WorkbenchUtil.getWorkbenchWindow().getShell(); + DeviceExplorerDialog dialog = new DeviceExplorerDialog(shell, false); + dialog.setPermissionFilter("111"); + Object result = dialog.open(); + if (result != null) { + @SuppressWarnings("unchecked") + List files = (List) result; + if (files.size() > 0) { + String execpath = files.get(0).getFullPath(); + selectedPkg.getMainApp().setInfo(AppInfo.PROPERTY.EXEC.index, + execpath); + } else { + enablestart = false; + } + } else { + enablestart = false; + } } Global.setCurrentApplication(selectedPkg); @@ -315,10 +330,7 @@ public class ToolbarArea { } if (enablestart && null != Global.getCurrentDeviceInfo()) { - // AnalyzerUtil - // .setRecordState(RecordStateSourceProvider.RECORD_READY); AnalyzerManager.setRunningState(false); - // startButton.setButtonEnabled(true); setStartButtonState(true); setRepalyButtonEnable(true); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/configuration/BinarySettingsPage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/configuration/BinarySettingsPage.java index 1454d27..25697eb 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/configuration/BinarySettingsPage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/configuration/BinarySettingsPage.java @@ -56,8 +56,8 @@ import org.tizen.dynamicanalyzer.swap.platform.ui.BinarySettingProgressManager; import org.tizen.dynamicanalyzer.swap.platform.ui.InputRow; import org.tizen.dynamicanalyzer.swap.platform.ui.LoadSettingDialog; import org.tizen.dynamicanalyzer.swap.platform.ui.SaveSettingDialog; -import org.tizen.dynamicanalyzer.swap.platform.ui.DeviceExplorer.DeviceExplorerDilaog; -import org.tizen.dynamicanalyzer.swap.platform.ui.FileExplorer.FileExplorerDialog; +import org.tizen.dynamicanalyzer.ui.common.explorer.DeviceExplorerDialog; +import org.tizen.dynamicanalyzer.ui.common.explorer.FileExplorerDialog; import org.tizen.dynamicanalyzer.ui.toolbar.ConfigureManager; import org.tizen.dynamicanalyzer.util.CommonUtil; import org.tizen.dynamicanalyzer.util.Logger; @@ -93,7 +93,7 @@ public class BinarySettingsPage extends DAPageComposite { @Override public void handleClickEvent(DACustomButton button) { - DeviceExplorerDilaog dialog = new DeviceExplorerDilaog(getShell()); + DeviceExplorerDialog dialog = new DeviceExplorerDialog(getShell(), true); // dialog.setFilter(".so"); Object result = dialog.open(); if (result != null) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/SettingDialogBinarySettingsPage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/SettingDialogBinarySettingsPage.java index 6a33708..32e13f1 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/SettingDialogBinarySettingsPage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/SettingDialogBinarySettingsPage.java @@ -57,8 +57,8 @@ import org.tizen.dynamicanalyzer.swap.platform.ui.BinarySettingProgressManager; import org.tizen.dynamicanalyzer.swap.platform.ui.InputRow; import org.tizen.dynamicanalyzer.swap.platform.ui.LoadSettingDialog; import org.tizen.dynamicanalyzer.swap.platform.ui.SaveSettingDialog; -import org.tizen.dynamicanalyzer.swap.platform.ui.DeviceExplorer.DeviceExplorerDilaog; -import org.tizen.dynamicanalyzer.swap.platform.ui.FileExplorer.FileExplorerDialog; +import org.tizen.dynamicanalyzer.ui.common.explorer.DeviceExplorerDialog; +import org.tizen.dynamicanalyzer.ui.common.explorer.FileExplorerDialog; import org.tizen.dynamicanalyzer.util.CommonUtil; import org.tizen.dynamicanalyzer.util.Logger; import org.tizen.dynamicanalyzer.widgets.button.DACustomButton; @@ -93,7 +93,7 @@ public class SettingDialogBinarySettingsPage extends DAPageComposite { @Override public void handleClickEvent(DACustomButton button) { - DeviceExplorerDilaog dialog = new DeviceExplorerDilaog(getShell()); + DeviceExplorerDialog dialog = new DeviceExplorerDialog(getShell(), true); // dialog.setFilter(".so"); Object result = dialog.open(); if (result != null) { -- 2.7.4