From e2eda05903b26bac383eaf93b9651a1c1f885abf Mon Sep 17 00:00:00 2001 From: Maria Guseva Date: Thu, 11 Aug 2016 16:27:56 +0300 Subject: [PATCH] Merged 'sdk_merge' branch into 'sdk' Change-Id: Ia79a2c268e3ee9126787825886b28f32b55faa65 Signed-off-by: Maria Guseva --- .../dynamicanalyzer/widgets/da/base/DADialog.java | 3 +- .../widgets/da/view/DATabComposite.java | 13 +- .../tizen/dynamicanalyzer/cli/CliInternals.java | 5 +- .../cli/tracing/TracingFeatureArgument.java | 5 +- .../cli/tracing/TracingProcess.java | 6 +- .../cli/utils/HumanReadableTimeFormat.java | 17 +- .../widgets/chart/DAChartRenderer.java | 29 +- .../widgets/chartBoard/DAChartBoardItemCell.java | 7 + .../widgets/helper/ColorResources.java | 2 +- .../feature.xml | 870 +-------------------- .../resources/config/setting | 64 +- org.tizen.dynamicanalyzer/META-INF/MANIFEST.MF | 4 +- .../dynamicanalyzer/handlers/CommandAction.java | 4 + .../tizen/dynamicanalyzer/handlers/GUIAction.java | 8 + .../dynamicanalyzer/nl/ConfigureLabels.properties | 32 +- .../dynamicanalyzer/nl/ThreadPageLabels.properties | 4 +- .../tizen/dynamicanalyzer/setting/TargetData.java | 6 + .../swap/model/data/ProcessProfileData.java | 2 +- .../swap/model/data/SystemData.java | 23 +- .../dynamicanalyzer/ui/file/FileApiListTable.java | 79 ++ .../tizen/dynamicanalyzer/ui/file/FilePage.java | 65 +- .../dynamicanalyzer/ui/memory/MemoryPage.java | 65 +- .../dynamicanalyzer/ui/network/NetworkPage.java | 64 +- .../dynamicanalyzer/ui/network/NetworkTable.java | 79 ++ .../tizen/dynamicanalyzer/ui/opengl/GLPage.java | 92 ++- .../ui/opengl/table/api/GLAPITable.java | 1 - .../ui/opengl/table/state/GLContextTable.java | 1 - .../ui/opengl/table/state/GLProgramTable.java | 1 - .../ui/opengl/table/state/GLRedundantTable.java | 1 - .../ui/opengl/table/state/GLStatisticsTable.java | 1 - .../ui/opengl/table/state/GLTextureTable.java | 1 - .../tizen/dynamicanalyzer/ui/page/BaseView.java | 20 +- .../org/tizen/dynamicanalyzer/ui/page/MenuBar.java | 1 + .../ui/thread/ThreadAPIListTable.java | 81 ++ .../dynamicanalyzer/ui/thread/ThreadPage.java | 64 +- .../ui/thread/chart/SyncChartBoard.java | 4 + .../ui/thread/chart/ThreadChartView.java | 125 +-- .../ui/timeline/SystemDataDBTable.java | 5 + .../ui/timeline/TargetProcessDBTable.java | 5 + .../dynamicanalyzer/ui/timeline/TimelinePage.java | 69 +- .../ui/timeline/calltrace/CallTraceTable.java | 3 +- .../ui/timeline/chart/CPUChart.java | 16 +- .../ui/timeline/common/TimelineDataManager.java | 3 +- .../ui/timeline/dlog/DlogTable.java | 197 ++--- .../tizen/dynamicanalyzer/ui/toolbar/Toolbar.java | 2 +- .../setting/FlatFeatureDialogFeatureListPage.java | 71 +- .../FlatFeatureDialogSelectedFeaturePage.java | 27 +- .../ui/toolbar/setting/PreferencesDialog.java | 122 +-- .../ui/widgets/table/DAApiListTableComposite.java | 1 - package/build.linux | 17 +- package/pkginfo.manifest | 5 + 51 files changed, 993 insertions(+), 1399 deletions(-) diff --git a/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/widgets/da/base/DADialog.java b/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/widgets/da/base/DADialog.java index 961a902..452ca2a 100644 --- a/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/widgets/da/base/DADialog.java +++ b/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/widgets/da/base/DADialog.java @@ -240,11 +240,12 @@ public class DADialog { private void addExportButton(Composite buttonComp) { exportButton = new Button(buttonComp, SWT.NONE); exportButton.setText(WidgetLabels.EXPORT_LOGS); + exportButton.setFont(FontResources.DIALOG_BUTTON_FONT); FormData exportData = new FormData(); exportData.top = new FormAttachment(0, button_top); exportData.left = new FormAttachment(0, 20); - exportData.width = DesignConstants.DA_BUTTON_WIDTH; + exportData.width = DesignConstants.DA_BUTTON_WIDTH+30; exportData.height = DesignConstants.DA_BUTTON_HEIGHT; exportButton.setLayoutData(exportData); } diff --git a/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/widgets/da/view/DATabComposite.java b/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/widgets/da/view/DATabComposite.java index 88618ed..c5fa254 100644 --- a/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/widgets/da/view/DATabComposite.java +++ b/org.tizen.dynamicanalyzer.appearance/src/org/tizen/dynamicanalyzer/widgets/da/view/DATabComposite.java @@ -634,6 +634,17 @@ public class DATabComposite extends DABaseComposite { this.tabBGColorStart = tabBGColorStart; this.tabBGColorEnd = tabBGColorEnd; } - + public void updateTabButtonsWidth(int width) { + setTabWidth(width); + for(DATabButton button : buttons) { + FormData data = (FormData) button.getLayoutData(); + data.width = width; + } + tabComposite.layout(); + } + + public List getTabButtons() { + return buttons; + } } diff --git a/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/CliInternals.java b/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/CliInternals.java index 46aac74..6d57471 100644 --- a/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/CliInternals.java +++ b/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/CliInternals.java @@ -31,6 +31,7 @@ import org.tizen.dynamicanalyzer.nl.ConfigureLabels; import org.tizen.dynamicanalyzer.nl.TimelineChartLabels; import org.tizen.dynamicanalyzer.project.AppInfo; import org.tizen.dynamicanalyzer.project.PackageInfo; +import org.tizen.dynamicanalyzer.setting.FlatFeature; import org.tizen.dynamicanalyzer.setting.FlatPreferences; import org.tizen.dynamicanalyzer.setting.PrimitiveFeature; import org.tizen.dynamicanalyzer.setting.SettingDataManager; @@ -275,13 +276,13 @@ public final class CliInternals { private static boolean selectFeatures(TracingArguments args) { // drop previous settings UILayoutDataManager.INSTANCE.setSelectedChartSet(new HashSet()); + TargetData target = SettingDataManager.INSTANCE.getTarget(null); + target.setSelectedFlatFeatures(new HashSet()); selectScreenshotFeature(args.getScreenshotPeriod(), args.isScreenshotPeriodSpecified()); args.getFeatures().remove(PrimitiveFeature.SCREENSHOT);//This feature added to target by selectScreenshotFeature(). - TargetData target = SettingDataManager.INSTANCE.getTarget(null); - for (PrimitiveFeature feature : args.getFeatures()) { target.addSelectedFlatFeature(feature.getName()); UILayoutDataManager.INSTANCE.addSelectedChart(feature.getChart()); diff --git a/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/tracing/TracingFeatureArgument.java b/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/tracing/TracingFeatureArgument.java index a2aad44..20c3e67 100644 --- a/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/tracing/TracingFeatureArgument.java +++ b/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/tracing/TracingFeatureArgument.java @@ -24,9 +24,9 @@ public enum TracingFeatureArgument { FILE("F","file"), GRAPHICS("G","graphics"), NETWORK("N","network"), - SYNC("Y", "synchronization"), // Options for single features selection + THREAD("T", PrimitiveFeature.THREAD_ANALYSIS), UIEVENT("U", PrimitiveFeature.UI_EVENT), PERIPHERAL("P", PrimitiveFeature.PERIPHERAL_STATUS), POWER("E", PrimitiveFeature.POWER_ESTIMATION); @@ -48,9 +48,6 @@ public enum TracingFeatureArgument { NETWORK.addDefaultFeatureValue("io", PrimitiveFeature.NETWORK_IO); NETWORK.addDefaultFeatureValue("analysis", PrimitiveFeature.NETWORK_ANALYSIS); - SYNC.addDefaultFeatureValue("thread", PrimitiveFeature.THREAD_ANALYSIS); - SYNC.addDefaultFeatureValue("sync", PrimitiveFeature.SYNC_ANALYSIS); - // Add description of default options for (TracingFeatureArgument featureArg : values()) if (featureArg.getOption().hasArgs()) diff --git a/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/tracing/TracingProcess.java b/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/tracing/TracingProcess.java index b90b28d..218e177 100644 --- a/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/tracing/TracingProcess.java +++ b/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/tracing/TracingProcess.java @@ -59,7 +59,7 @@ public class TracingProcess { private long startTime; /** - * Stop time value in milliseconds. It's initialized at application stop + * Stop time value in microseconds. It's initialized at application stop */ private volatile long tracingTime; @@ -99,7 +99,7 @@ public class TracingProcess { // If CliInternals.startTracing returns Success the StartTraceManager thread still may fail if (!DAState.isRunning() && result==ErrorCode.SUCCESS) result = ErrorCode.ERR_EXCEPTION_OCCURRED; - startTime = System.currentTimeMillis(); + startTime = System.nanoTime() / 1000; return result; } @@ -108,7 +108,7 @@ public class TracingProcess { * This method should not block caller thread during performing tracing stop. */ public synchronized void stopTrace() { - tracingTime = System.currentTimeMillis() - startTime; + tracingTime = System.nanoTime() / 1000 - startTime; Global.getProject().setTotalStopTime(tracingTime); socketConnection.sendMessage(MessageType.INFO_TRACING_TIME, Long.toString(tracingTime)); diff --git a/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/utils/HumanReadableTimeFormat.java b/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/utils/HumanReadableTimeFormat.java index b5b6480..e9ed359 100644 --- a/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/utils/HumanReadableTimeFormat.java +++ b/org.tizen.dynamicanalyzer.cli/src/org/tizen/dynamicanalyzer/cli/utils/HumanReadableTimeFormat.java @@ -13,9 +13,9 @@ public class HumanReadableTimeFormat implements Serializable { private static final long serialVersionUID = 8522187457892222028L; /** - * Duration of this time period in milliseconds. + * Time period in milliseconds. */ - long duration_ms; + long time_ms; /** * Count of milliseconds in a second. @@ -43,11 +43,16 @@ public class HumanReadableTimeFormat implements Serializable { * @param finish time when period was ended */ public HumanReadableTimeFormat(Date start, Date finish) { - duration_ms = Math.abs(finish.getTime() - start.getTime()); + time_ms = Math.abs(finish.getTime() - start.getTime()); } - public HumanReadableTimeFormat(long tracingTime) { - duration_ms = tracingTime; + /** + * Public constructor. It gets time in microseconds. + * + * @param time_microsec time in microseconds. + */ + public HumanReadableTimeFormat(long time_microsec) { + time_ms = time_microsec / 1000; } /** @@ -60,7 +65,7 @@ public class HumanReadableTimeFormat implements Serializable { */ @Override public String toString() { - long diff_ms = this.duration_ms; + long diff_ms = this.time_ms; long days = diff_ms / MS_IN_DAY; diff_ms %= MS_IN_DAY; diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartRenderer.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartRenderer.java index 1965b6d..ac410fd 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartRenderer.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chart/DAChartRenderer.java @@ -853,7 +853,6 @@ public class DAChartRenderer { gc.fillRectangle(pixelStartX, pixelStartY, barWidth, r.y + r.height - pixelStartY); gc.setBackground(series.getColor()); - gc.setAlpha(250); } if (currentX > plot.getVisibleEndX()) { break; @@ -1105,6 +1104,9 @@ public class DAChartRenderer { * SERIES_AREA_END, SERIES_AREA_BAR. */ private void drawStateAreaSeries(GC gc, DAChartSeries series, int seriesIndex, int seriesSize) { + int oldAlpha = gc.getAlpha(); + gc.setAlpha((int) (255 * 0.8)); + List seriesItems = series.getSeriesItemList(); if (null == seriesItems) { return; @@ -1218,6 +1220,7 @@ public class DAChartRenderer { int pixelStartX = plot.getXPixelFromX(barSeriesItem.getX(), r); gc.fillRectangle(pixelStartX, pixelStartY, STATE_AREA_BAR_WIDTH, areaHeight); } + gc.setAlpha(oldAlpha); } private void drawStepSeries(GC gc, DAChartSeries series, boolean bEndVal) { @@ -1404,6 +1407,9 @@ public class DAChartRenderer { gc.setBackground(color); gc.setForeground(ColorResources.BLACK); gc.setAntialias(SWT.ON); + + int oldAlpha = gc.getAlpha(); + gc.setAlpha((int) (255 * 0.8)); int index = series.getPrevIndexByXvalue(plot.getVisibleStartX()); if (index < 0) { @@ -1430,6 +1436,7 @@ public class DAChartRenderer { break; } } + gc.setAlpha(oldAlpha); } private void drawEventAreaSeries(GC gc, DAChartSeries series) { @@ -1648,6 +1655,9 @@ public class DAChartRenderer { Color foreColor; gc.setBackground(color); gc.setAntialias(SWT.ON); + + int oldAlpha = gc.getAlpha(); + gc.setAlpha((int) (255 * 0.8)); int index = series.getPrevIndexByXvalue(plot.getVisibleStartX()); if (index < 0) { @@ -1716,13 +1726,7 @@ public class DAChartRenderer { oldStateContinueRectangle.width = barWidth; oldStateContinueRectangle.height = r.y + r.height - heightMargin * 2; - if (null != foreColor) { - gc.setForeground(foreColor); - gc.fillGradientRectangle(pixelStartX, r.y + heightMargin, barWidth, r.y - + r.height - heightMargin * 2, true); - } else { - gc.fillRectangle(oldStateContinueRectangle); - } + gc.fillRectangle(oldStateContinueRectangle); } prevEndX = pixelStartX + barWidth; break; @@ -1751,13 +1755,7 @@ public class DAChartRenderer { oldStateConnectionRectangle.width = barWidth; oldStateConnectionRectangle.height = r.y + r.height - heightMargin * 2; - if (null != foreColor) { - gc.setForeground(foreColor); - gc.fillGradientRectangle(pixelStartX, r.y + heightMargin, barWidth, r.y - + r.height - heightMargin * 2, true); - } else { - gc.fillRectangle(oldStateConnectionRectangle); - } + gc.fillRectangle(oldStateConnectionRectangle); } prevEndX = pixelStartX + barWidth; @@ -1773,6 +1771,7 @@ public class DAChartRenderer { break; } } + gc.setAlpha(oldAlpha); } private void drawDotSeries(GC gc, DAChartSeries series) { diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItemCell.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItemCell.java index 07cd8b1..b391d97 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItemCell.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/chartBoard/DAChartBoardItemCell.java @@ -327,9 +327,16 @@ public class DAChartBoardItemCell extends Composite { nameCellCurrentBGColorEnd = nameCellNormalBGColorEnd; } redrawFoldBackground(); + redrawExpandBackground(); nameCell.redraw(); + chartCell.setSelectCell(selectCell); } + + private void redrawExpandBackground() { + expandButton.setBackground(nameCellCurrentBGColorStart); + expandButton.redraw(); + } private void redrawFoldBackground() { if (null == childFoldButton) { diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/helper/ColorResources.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/helper/ColorResources.java index cbdb178..ec7dffa 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/helper/ColorResources.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/helper/ColorResources.java @@ -103,7 +103,7 @@ public class ColorResources { public static Color CHART_NAME_PARENT_SELECT_START = getColor( "chart_name_parent_select_start", new RGB(156, 208, 228)); //$NON-NLS-1$ public static Color CHART_NAME_PARENT_SELECT_END = getColor( - "chart_name_parent_select_end", new RGB(129, 170, 186)); //$NON-NLS-1$ + "chart_name_parent_select_end", new RGB(156, 208, 228)); //$NON-NLS-1$ public static Color CHART_NAME_ADD_INFO_TEXT = getColor( "chart_name_add_info_text", new RGB(94, 94, 94)); //$NON-NLS-1$ diff --git a/org.tizen.dynamicanalyzer.workbench.feature/feature.xml b/org.tizen.dynamicanalyzer.workbench.feature/feature.xml index 32d47f6..1161034 100644 --- a/org.tizen.dynamicanalyzer.workbench.feature/feature.xml +++ b/org.tizen.dynamicanalyzer.workbench.feature/feature.xml @@ -26,216 +26,6 @@ version="0.0.0"/> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2016-05-04 - - - - diff --git a/org.tizen.dynamicanalyzer.workbench.product/resources/config/setting b/org.tizen.dynamicanalyzer.workbench.product/resources/config/setting index 3804848..9b1d015 100644 --- a/org.tizen.dynamicanalyzer.workbench.product/resources/config/setting +++ b/org.tizen.dynamicanalyzer.workbench.product/resources/config/setting @@ -1,32 +1,32 @@ -Version|0.2 -Log Level|4 -Debug Print|Y -Available Target List|mobile|wearable -Selected Target|mobile -Default Feature List|2|3|103 -Total Overhead Range|1000000|3000000|7000000|15000000 -Options Selected Feature List|5002:0 -Selected Preferences|2001 -mobile|Protocol Version|4.0 -mobile|Available Template List|1|2|3|4|5|6|7|8|9|10|11 -mobile|Selected Template|1 -mobile|Available Feature List|1|1000|4|5|6|7|8|9|100|101|1001|301|200|201|202|203|204|206 -mobile|Available FlatFeature List|101|102|103|201|202|203|301|302|401|501|502|601|602|603|701|702|801|802 -mobile|Selected Feature List|1|5|1000:1000|100|101|1001:10 -mobile|Selected FlatFeature List| -mobile|Available Chart List|CPU Usage|Core Usage|Core Frequency|System Memory|Process Memory|Heap Allocation|Screenshot|UI Event|Disk IO|Network IO|Peripheral Status|Power Estimation -wearable|Protocol Version|3.0 -wearable|Available Template List|1|2|3|4|5|6|7|8|9|10|11 -wearable|Selected Template|1 -wearable|Available Feature List|1|1000|4|5|6|7|8|9|100|101|1001|301|200|201|202|203|204|206 -wearable|Available FlatFeature List|101|102|103|201|202|203|301|302|401|501|502|601|602|603|701|702|801|802 -wearable|Selected Feature List|1|5|1000:1000|100|101|1001:10 -wearable|Selected FlatFeature List| -wearable|Available Chart List|CPU Usage|Core Usage|Core Frequency|System Memory|Process Memory|Heap Allocation|Screenshot|UI Event|Disk IO|Network IO|Peripheral Status|Power Estimation -tv|Protocol Version|3.0 -tv|Available Template List|1|2|3|4|5|6|7|8|10 -tv|Selected Template|1 -tv|Available Feature List|1|1000|4|5|6|7|100|101|1001|102|200|201|202|203 -tv|Available FlatFeature List|101|102|103|201|202|203|301|302|401|501|502|601|602|603|701|702|801|802 -tv|Selected Feature List|1|5|1000:1000|100|101|1001:10 -tv|Available Chart List|CPU|CPU core|CPU frequency|Heap allocation|Process Size|Memory|Screenshot|Disk IO|Network IO +Version|0.2 +Log Level|4 +Debug Print|Y +Available Target List|mobile|wearable +Selected Target|mobile +Default Feature List|2|3|103 +Total Overhead Range|1000000|3000000|7000000|15000000 +Options Selected Feature List|5002:0 +Selected Preferences|2001 +mobile|Protocol Version|4.0 +mobile|Available Template List|1|2|3|4|5|6|7|8|9|10|11 +mobile|Selected Template|1 +mobile|Available Feature List|1|1000|4|5|6|7|8|9|100|101|1001|301|200|201|202|203|204|206 +mobile|Available FlatFeature List|101|102|103|201|202|203|301|302|401|501|502|601|602|603|701|801|802 +mobile|Selected Feature List|1|5|1000:1000|100|101|1001:10 +mobile|Selected FlatFeature List| +mobile|Available Chart List|CPU Usage|Core Usage|Core Frequency|System Memory|Process Memory|Heap Allocation|Screenshot|UI Event|Disk IO|Network IO|Peripheral Status|Power Estimation +wearable|Protocol Version|3.0 +wearable|Available Template List|1|2|3|4|5|6|7|8|9|10|11 +wearable|Selected Template|1 +wearable|Available Feature List|1|1000|4|5|6|7|8|9|100|101|1001|301|200|201|202|203|204|206 +wearable|Available FlatFeature List|101|102|103|201|202|203|301|302|401|501|502|601|602|603|701|801|802 +wearable|Selected Feature List|1|5|1000:1000|100|101|1001:10 +wearable|Selected FlatFeature List| +wearable|Available Chart List|CPU Usage|Core Usage|Core Frequency|System Memory|Process Memory|Heap Allocation|Screenshot|UI Event|Disk IO|Network IO|Peripheral Status|Power Estimation +tv|Protocol Version|3.0 +tv|Available Template List|1|2|3|4|5|6|7|8|10 +tv|Selected Template|1 +tv|Available Feature List|1|1000|4|5|6|7|100|101|1001|102|200|201|202|203 +tv|Available FlatFeature List|101|102|103|201|202|203|301|302|401|501|502|601|602|603|701|801|802 +tv|Selected Feature List|1|5|1000:1000|100|101|1001:10 +tv|Available Chart List|CPU|CPU core|CPU frequency|Heap allocation|Process Size|Memory|Screenshot|Disk IO|Network IO diff --git a/org.tizen.dynamicanalyzer/META-INF/MANIFEST.MF b/org.tizen.dynamicanalyzer/META-INF/MANIFEST.MF index 468a1fe..029eca6 100644 --- a/org.tizen.dynamicanalyzer/META-INF/MANIFEST.MF +++ b/org.tizen.dynamicanalyzer/META-INF/MANIFEST.MF @@ -24,9 +24,7 @@ Bundle-ClassPath: ., lib/protobuf.jar, lib/org.eclipse.cdt.debug.edc_1.0.0.201503041838.jar, lib/org.eclipse.draw2d_3.7.2.v20111017-2020.jar -Import-Package: junit.framework;version="4.8.2", - org.junit, - org.tizen.sdblib, +Import-Package: org.tizen.sdblib, org.tizen.sdblib.exception, org.tizen.sdblib.receiver, org.tizen.sdblib.service, diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/CommandAction.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/CommandAction.java index bf54b20..3ac06b2 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/CommandAction.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/CommandAction.java @@ -99,6 +99,8 @@ public class CommandAction { project.save(); DataManagerRegistry.saveData(); + SqlConnectionManager.closeConnection(); + File sourceFolder = new File(sourcePath); if (!sourceFolder.isDirectory()) { return false; @@ -111,6 +113,8 @@ public class CommandAction { return false; } + SqlConnectionManager.establishConnection(sourcePath); + return true; } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/GUIAction.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/GUIAction.java index 76ac630..35aa982 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/GUIAction.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/GUIAction.java @@ -253,6 +253,14 @@ public class GUIAction implements UIAction { public void setUIElementsBySetting() { setPageBySetting(); setChartBySetting(); + + // SRADA-906: fix broken UI by forcible relayout whole window + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + WorkbenchUtil.getWorkbenchWindow().getShell().layout(true, true); + } + }); } @Override diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/ConfigureLabels.properties b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/ConfigureLabels.properties index 8f3c103..27c0d03 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/ConfigureLabels.properties +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/ConfigureLabels.properties @@ -102,24 +102,24 @@ FEATURE_NAME_SYNC=Sync Analysis FEATURE_NAME_PERIPHERAL_STATUS=Peripheral Status FEATURE_NAME_POWER_ESTIMATION=Power Estimation -FEATURE_DESCRIPTION_CPU_USAGE=Shows a total CPU usage made by running processes on a system and a CPU usage in percent. -FEATURE_DESCRIPTION_CPU_USAGE_PER_CORE=Shows usage of each core on a device(or an emulator) in percent. The number of series on the chart is vary depends on the number of cores. -FEATURE_DESCRIPTION_CPU_FREQ_PER_CORE=Shows frequency of each core on a device in MHz. This feature is only available on the device not for an emulator. -FEATURE_DESCRIPTION_FLAT_SYSTEM_MEMORY=Monitors maximum, used memory of a system and an a process used in KB. -FEATURE_DESCRIPTION_PROCESS_MEMORY=Monitors a partition of PSS, 3D, GEM memory of a process in KB. -FEATURE_DESCRIPTION_MEMORY_ALLOC=Records all memory allocations and frees requested from a executable and shared libraries. This Features shows un-freed allocations (leak candidate). -FEATURE_DESCRIPTION_DISK_IO=Shows system I/O Events such as occurance of Read/Write operation and its amounts of byte. -FEATURE_DESCRIPTION_FILE=Analyzes file activies such as open, close and lock operation in a separated analysis view. +FEATURE_DESCRIPTION_CPU_USAGE=Shows the total CPU usage made by running processes on a system, and a CPU usage in percentages. +FEATURE_DESCRIPTION_CPU_USAGE_PER_CORE=Shows the use of each core on a device(or an emulator) in percentages. The number of series on the chart varies depending on the number of cores. +FEATURE_DESCRIPTION_CPU_FREQ_PER_CORE=Shows the frequency of each core on a device in MHz. This feature is only available on the device, and not on an emulator. +FEATURE_DESCRIPTION_FLAT_SYSTEM_MEMORY=Monitors the maximum and used memory of the system, and the memory used by a process used in KB. +FEATURE_DESCRIPTION_PROCESS_MEMORY=Monitors a partition of the PSS, 3D, and GEM memory of a process in KB. +FEATURE_DESCRIPTION_MEMORY_ALLOC=Records all memory allocations and frees the requested allocations from the executable and shared libraries. This Feature shows un-freed allocations (leak candidates). +FEATURE_DESCRIPTION_DISK_IO=Shows the system I/O events, such as the occurrence of the read/write operation and the number of bytes in it. +FEATURE_DESCRIPTION_FILE=Analyzes file activities, such as open, close, and lock operations in a separate analysis view. FEATURE_DESCRIPTION_OPENGLES=Analyzes OpenGL(Open Graphics Library) 2.0 and EvasGL information used on a process. It shows detailed OpenGL API lists, Context, Program and Texture information at a particular point of time. -FEATURE_DESCRIPTION_NETWORK_IO=Shows amount of bytes that a system sends and receives via the network. -FEATURE_DESCRIPTION_NETWORK=Analyzes network activies such as recv, send, bind and accept operation in a separated analysis view. -FEATURE_DESCRIPTION_UI_EVENT=Shows Touch(press, move, release), Geasture(distance, movement and angle) and Orientation change events. -FEATURE_DESCRIPTION_SCREENSHOT=Shows a series of screenshot events taken by an user. It can be set to capture screenshot by a screen transition or by a specific time interval. -FEATURE_DESCRIPTION_UI_HIERARCHY=Analyzes the hierarchy and details of a EFL based application used EFL UI objects (Evas, Elementry and Edje). -FEATURE_DESCRIPTION_THREAD=Analyzes the internal threads of a process and its synchronization opration. +FEATURE_DESCRIPTION_NETWORK_IO=Shows the number of bytes that the system sends and receives through the network. +FEATURE_DESCRIPTION_NETWORK=Analyzes network activities, such as recv, send, bind, and accept operations, in a separate analysis view. +FEATURE_DESCRIPTION_UI_EVENT=Shows the touch(press, move, release), Geasture(distance, movement, angle), and orientation change events. +FEATURE_DESCRIPTION_SCREENSHOT=Shows a series of screenshot events taken by an user. It can be set to capture a screenshot during each screen transition or at specific time intervals. +FEATURE_DESCRIPTION_UI_HIERARCHY=Analyzes the hierarchy and details of a EFL-based application using EFL UI objects (Evas, Elementary, and Edje). +FEATURE_DESCRIPTION_THREAD=Analyzes the internal threads of a process and its synchronization opration which multiple threads race against. FEATURE_DESCRIPTION_SYNC=Analyzes the syncronization objects which multiple threads race against to. -FEATURE_DESCRIPTION_PERIPHERAL_STATUS=Shows peripheral's on/off state of WIFI, BT, GPS, Data Network and Camera. -FEATURE_DESCRIPTION_POWER_ESTIMATION=Calculates the amount of power consumption that CPU, Flash, LCD, Wifi and BT consume with an accurate estimation model. +FEATURE_DESCRIPTION_PERIPHERAL_STATUS=Shows the on/off state of the Wi-Fi, Bluetooth, GPS, Data network and camera peripherals. +FEATURE_DESCRIPTION_POWER_ESTIMATION=Calculates the power consumption of the CPU, Flash, LCD, Wi-Fi, and Bluetooth with an accurate estimation model. FEATURE_PAGE_CPU_USAGE=Timeline FEATURE_PAGE_CPU_USAGE_PER_CORE=Timeline diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/ThreadPageLabels.properties b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/ThreadPageLabels.properties index 70d6d22..1ac3aeb 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/ThreadPageLabels.properties +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/ThreadPageLabels.properties @@ -42,8 +42,8 @@ THREAD_CHART_NAME_PREFIX=\n( THREAD_CHART_NAME_POSTFIX=) THREAD_CHART_NAME_PID=PID : THREAD_CHART_NAME_TID=TID : -THREAD_CHART_NAME_COMMA=,\n -THREAD_CHART_NAME_OBJ=object name :\n +THREAD_CHART_NAME_COMMA=, +THREAD_CHART_NAME_OBJ=object name : THREAD_SYNC_CHART_SERIES_STATE=STATE diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/setting/TargetData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/setting/TargetData.java index 6558896..a44ba13 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/setting/TargetData.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/setting/TargetData.java @@ -30,6 +30,7 @@ import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Set; import org.tizen.dynamicanalyzer.constant.CommonConstants; import org.tizen.dynamicanalyzer.protocol.Protocol; @@ -466,4 +467,9 @@ public class TargetData { dest.add(source.get(i)); } } + + public void setSelectedFlatFeatures(Set set) { + selectedFlatFeatureList.clear(); + selectedFlatFeatureList.addAll(set); + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProcessProfileData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProcessProfileData.java index 7ba7c7b..8580252 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProcessProfileData.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProcessProfileData.java @@ -28,7 +28,7 @@ package org.tizen.dynamicanalyzer.swap.model.data; public class ProcessProfileData { private int pid; // protocol 3.0 - private float processLoad; // protocol 3.0 + private float processLoad; // protocol 3.0, in range [0-100]% private long virtualMemory; // protocol 3.0 private long residentMemory; // protocol 3.0 private long sharedMemory; // protocol 3.0 diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/SystemData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/SystemData.java index 549330f..723466d 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/SystemData.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/SystemData.java @@ -54,7 +54,7 @@ public class SystemData extends LogData { } double[] cpuFrequency = null; // protocol 3.0 - double[] cpuLoad = null; // protocol 3.0 + double[] cpuLoad = null; // protocol 3.0 , in range [0-100]% long systemMemoryUsed = 0; // protocol 3.0 int targetProcessCount = 0; // protocol 3.0 ProcessProfileData[] processProfileDataList = null; // protocol 3.0 @@ -486,23 +486,34 @@ public class SystemData extends LogData { this.otherProcessLoad = otherProcessLoad; } + /** + * Get total system CPU load value. + * @return percentage of CPU load, scaled by number of CPU cores to be in range [0-100]% + */ public double getTotalCPULoad() { if (cpuLoad == null) { return 0.0; } + + // Calculate CPU load based on each core load information double totalCPULoad = 0.0; for (int i = 0; i < cpuLoad.length; i++) { totalCPULoad += cpuLoad[i]; } + // Each core CPU load is in range 0-100%, so the sum should be scaled by CPU number + totalCPULoad /= cpuLoad.length; + + // Calculate CPU load based on each process load information double processCPULoad = getProcessCPULoad(); + + /* + * Revise "total cpu load" to prevent "total load" from being shown less than + * "process load". This problem occurs because time gap of calculating "total load" + * and "process load". + */ if (totalCPULoad < processCPULoad) { Logger.warning("totalCPULoad [" + totalCPULoad + "] is less than processCPULoad [ + " + processCPULoad + "]."); - /* - * Revise "total cpu load" to prevent "total load" from being shown less than - * "process load". This problem is occurs because time gap of calculating "total load" - * and "process load". - */ totalCPULoad = processCPULoad; } return totalCPULoad; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileApiListTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileApiListTable.java index 3487961..94bf71b 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileApiListTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileApiListTable.java @@ -33,8 +33,11 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; +import org.eclipse.nebula.widgets.grid.Grid; import org.eclipse.nebula.widgets.grid.GridColumn; import org.eclipse.nebula.widgets.grid.GridItem; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.widgets.Composite; @@ -54,10 +57,25 @@ import org.tizen.dynamicanalyzer.ui.file.manager.FileDataManager; import org.tizen.dynamicanalyzer.ui.file.model.FileAccessor; import org.tizen.dynamicanalyzer.ui.file.model.FileEvent; import org.tizen.dynamicanalyzer.ui.file.model.FileSelectedData; +import org.tizen.dynamicanalyzer.ui.memory.MemoryChartView; +import org.tizen.dynamicanalyzer.ui.memory.MemoryPage; +import org.tizen.dynamicanalyzer.ui.network.NetworkChartView; +import org.tizen.dynamicanalyzer.ui.network.NetworkPage; +import org.tizen.dynamicanalyzer.ui.opengl.GLPage; +import org.tizen.dynamicanalyzer.ui.opengl.chart.GLChartView; +import org.tizen.dynamicanalyzer.ui.page.BaseView; +import org.tizen.dynamicanalyzer.ui.range.RangeDataManager; +import org.tizen.dynamicanalyzer.ui.thread.ThreadPage; +import org.tizen.dynamicanalyzer.ui.thread.chart.ThreadChartView; +import org.tizen.dynamicanalyzer.ui.timeline.TimelinePage; +import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartView; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants; +import org.tizen.dynamicanalyzer.ui.toolbar.Toolbar; import org.tizen.dynamicanalyzer.ui.widgets.table.DAApiListTableComposite; import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat; import org.tizen.dynamicanalyzer.util.Logger; +import org.tizen.dynamicanalyzer.util.WorkbenchUtil; +import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; import org.tizen.dynamicanalyzer.utils.Formatter; public class FileApiListTable extends DAApiListTableComposite { @@ -101,6 +119,67 @@ public class FileApiListTable extends DAApiListTableComposite { public void widgetDefaultSelected(SelectionEvent e) { } }); + + table.addMouseListener(new MouseListener() { + + @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) { + GridItem[] ti = ((Grid) e.widget).getSelection(); + if (null == ti || ti.length == 0) { + return; + } + List markerData = ((DATableDataFormat) ti[0].getData()).getData(); + long markerTime = Long.parseLong((String)markerData.get(1)); + addMarker(markerTime); + } + }); + } + + private void addMarker(long markerTime) { + double startMarkerTime = markerTime / (TimelineConstants.MEGA_DOUBLE); + + TimelineChartView TLchartView = (TimelineChartView) AnalyzerUtil.getView(TimelinePage.pageID, TimelineChartView.class.getName()); + NetworkChartView NETchartView = (NetworkChartView) AnalyzerUtil.getView(NetworkPage.pageID, NetworkChartView.class.getName()); + ThreadChartView THRchartView = (ThreadChartView) AnalyzerUtil.getView(ThreadPage.pageID, ThreadChartView.class.getName()); + FileChartView FLchartView = (FileChartView) AnalyzerUtil.getView(FilePage.pageID, FileChartView.class.getName()); + GLChartView GLchartview = (GLChartView) AnalyzerUtil.getView(GLPage.pageID, GLChartView.class.getName()); + MemoryChartView MMchartView = (MemoryChartView) AnalyzerUtil.getView(MemoryPage.pageID, MemoryChartView.class.getName()); + + //1. add marker to rangedatamanager + RangeDataManager.getInstance().addMarkerTime(markerTime); + + //2. add marker to toolbar + Toolbar.INSTANCE.addMarkerTime(startMarkerTime); + + if(TLchartView != null) + TLchartView.updateView(); + if(NETchartView != null) + NETchartView.updateView(); + if(THRchartView != null) + THRchartView.updateView(); + if(FLchartView != null) + FLchartView.updateView(); + if(GLchartview != null) + GLchartview.updateView(); + if(MMchartView != null) + MMchartView.updateView(); + + AnalyzerUtil.getMainTab().getTopComposite().updateView(); + /// draw marker clearly + BaseView baseView = (BaseView) WorkbenchUtil.getViewPart(BaseView.ID); + baseView.getTopComposite().updateView(); } @Override diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FilePage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FilePage.java index 053d12c..9deb98a 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FilePage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FilePage.java @@ -32,15 +32,21 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Sash; import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.nl.AnalyzerLabels; import org.tizen.dynamicanalyzer.resources.ColorResources; +import org.tizen.dynamicanalyzer.setting.SettingDataManager; import org.tizen.dynamicanalyzer.shortcut.ShortCutManager; import org.tizen.dynamicanalyzer.swap.logparser.DataManagerRegistry; import org.tizen.dynamicanalyzer.ui.file.manager.FileDataManager; +import org.tizen.dynamicanalyzer.ui.page.BaseView; +import org.tizen.dynamicanalyzer.ui.page.PageInfoRegistry; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineTableView; import org.tizen.dynamicanalyzer.util.Logger; +import org.tizen.dynamicanalyzer.util.WorkbenchUtil; import org.tizen.dynamicanalyzer.widgets.da.view.DABaseComposite; import org.tizen.dynamicanalyzer.widgets.da.view.DAPageComposite; import org.tizen.dynamicanalyzer.widgets.da.view.DATabComposite; @@ -61,6 +67,11 @@ public class FilePage extends DAPageComposite { private DATabComposite fileDetailTableView = null; boolean isDetailMode = true; + + int tableHeight = -1; + int tableWeight = 65; + + boolean wasSashCreated = false; public FilePage(Composite parent, int style) { super(parent, style); @@ -111,8 +122,33 @@ public class FilePage extends DAPageComposite { bottomLeftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH); bottomRightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH); - bottomForm.setWeights(new int[] { 65, 35 }); + bottomForm.setWeights(new int[] { tableWeight, 100 - tableWeight }); + + addTableWeightListener(); + } + + private void addHeightWeightListener() { + if(baseForm.getChildren().length > 2) { + ((Sash)baseForm.getChildren()[2]).addListener(SWT.MouseUp, new Listener() { + @Override + public void handleEvent(Event event) { + tableHeight = (int)((double)baseForm.getWeights()[0] / baseForm.getWeights()[0] + baseForm.getWeights()[1]) * baseForm.getSize().y * 1/1000; + } + }); + + wasSashCreated = true; + } + } + + private void addTableWeightListener() { + ((SashForm)bottomForm.getChildren()[0]).addListener(SWT.Resize, new Listener(){ + @Override + public void handleEvent(Event event) { + resizeTableButton(); + } + }); } + @Override public Composite getTopTable() { @@ -132,10 +168,18 @@ public class FilePage extends DAPageComposite { @Override protected void onResized(int width, int height) { + if(!wasSashCreated) { // This variable needs to check whether a Sash was created to calculate height ratio between chart area and table area + addHeightWeightListener(); + } + + resizePageButton(); + resizeTableButton(); + if(!isDetailMode) { baseForm.setWeights(new int[] { 100, 0 }); } else { - int hrate = (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height); + int hrate = (tableHeight == -1) ? (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height) : + (int) (tableHeight * 100 / height); if(hrate > 100) { return; @@ -145,6 +189,23 @@ public class FilePage extends DAPageComposite { } } + private void resizePageButton() { + int width = WorkbenchUtil.getWorkbenchWindow().getShell().getBounds().width; + int pageCount = PageInfoRegistry.getPageNamesByTarget(SettingDataManager.INSTANCE.getConnectedTarget().getTargetName()).size(); + + int newWidth = (width/pageCount > DATabComposite.LONG_TAB_WIDTH) ? DATabComposite.LONG_TAB_WIDTH : width/pageCount; + ((BaseView)WorkbenchUtil.getViewPart(BaseView.ID)).getMainTab().updateTabButtonsWidth(newWidth); + } + + private void resizeTableButton() { + double weight = (double) bottomForm.getWeights()[0] / 1000; + int width = (int) (WorkbenchUtil.getWorkbenchWindow().getShell().getBounds().width * weight); + int tabCount = fileAPITableView.getTabButtons().size(); + + int newWidth = (width/tabCount > DATabComposite.LONG_TAB_WIDTH) ? DATabComposite.LONG_TAB_WIDTH : width/tabCount; + fileAPITableView.updateTabButtonsWidth(newWidth); + } + @Override public void clear() { super.clear(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/MemoryPage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/MemoryPage.java index 29696fc..c0f5e98 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/MemoryPage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/memory/MemoryPage.java @@ -30,16 +30,22 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Sash; import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.nl.AnalyzerLabels; import org.tizen.dynamicanalyzer.resources.ColorResources; +import org.tizen.dynamicanalyzer.setting.SettingDataManager; import org.tizen.dynamicanalyzer.shortcut.ShortCutManager; import org.tizen.dynamicanalyzer.swap.logparser.DataManagerRegistry; import org.tizen.dynamicanalyzer.ui.memory.data.HeapDataManager; import org.tizen.dynamicanalyzer.ui.memory.data.MemoryDataManager; +import org.tizen.dynamicanalyzer.ui.page.BaseView; +import org.tizen.dynamicanalyzer.ui.page.PageInfoRegistry; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineTableView; import org.tizen.dynamicanalyzer.util.Logger; +import org.tizen.dynamicanalyzer.util.WorkbenchUtil; import org.tizen.dynamicanalyzer.widgets.da.view.DABaseComposite; import org.tizen.dynamicanalyzer.widgets.da.view.DAPageComposite; import org.tizen.dynamicanalyzer.widgets.da.view.DATabComposite; @@ -67,6 +73,11 @@ public class MemoryPage extends DAPageComposite { MemoryCallStackView memoryCallStackView; boolean isDetailMode = true; + + int tableHeight = -1; + int tableWeight = 65; + + boolean wasSashCreated = false; public MemoryPage(Composite parent, int style) { super(parent, style); @@ -127,8 +138,31 @@ public class MemoryPage extends DAPageComposite { bottomLeftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH); bottomRightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH); - bottomForm.setWeights(new int[] { 65, 35 }); - + bottomForm.setWeights(new int[] { tableWeight, 100 - tableWeight }); + + addTableWeightListener(); + } + + private void addHeightWeightListener() { + if(baseForm.getChildren().length > 2) { + ((Sash)baseForm.getChildren()[2]).addListener(SWT.MouseUp, new Listener() { + @Override + public void handleEvent(Event event) { + tableHeight = (int)((double)baseForm.getWeights()[0] / baseForm.getWeights()[0] + baseForm.getWeights()[1]) * baseForm.getSize().y * 1/1000; + } + }); + + wasSashCreated = true; + } + } + + private void addTableWeightListener() { + ((SashForm)bottomForm.getChildren()[0]).addListener(SWT.Resize, new Listener(){ + @Override + public void handleEvent(Event event) { + resizeTableButton(); + } + }); } @Override @@ -149,10 +183,18 @@ public class MemoryPage extends DAPageComposite { @Override protected void onResized(int width, int height) { + if(!wasSashCreated) { // This variable needs to check whether a Sash was created to calculate height ratio between chart area and table area + addHeightWeightListener(); + } + + resizePageButton(); + resizeTableButton(); + if(!isDetailMode) { baseForm.setWeights(new int[] { 100, 0 }); } else { - int hrate = (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height); + int hrate = (tableHeight == -1) ? (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height) : + (int) (tableHeight * 100 / height); if(hrate > 100) { return; @@ -162,6 +204,23 @@ public class MemoryPage extends DAPageComposite { } } + private void resizePageButton() { + int width = WorkbenchUtil.getWorkbenchWindow().getShell().getBounds().width; + int pageCount = PageInfoRegistry.getPageNamesByTarget(SettingDataManager.INSTANCE.getConnectedTarget().getTargetName()).size(); + + int newWidth = (width/pageCount > DATabComposite.LONG_TAB_WIDTH) ? DATabComposite.LONG_TAB_WIDTH : width/pageCount; + ((BaseView)WorkbenchUtil.getViewPart(BaseView.ID)).getMainTab().updateTabButtonsWidth(newWidth); + } + + private void resizeTableButton() { + double weight = (double) bottomForm.getWeights()[0] / 1000; + int width = (int) (WorkbenchUtil.getWorkbenchWindow().getShell().getBounds().width * weight); + int tabCount = memoryTabView.getTabButtons().size(); + + int newWidth = (width/tabCount > DATabComposite.LONG_TAB_WIDTH) ? DATabComposite.LONG_TAB_WIDTH : width/tabCount; + memoryTabView.updateTabButtonsWidth(newWidth); + } + @Override public void clear() { super.clear(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkPage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkPage.java index 8afbb89..75917f8 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkPage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkPage.java @@ -32,15 +32,21 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Sash; import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.nl.AnalyzerLabels; import org.tizen.dynamicanalyzer.resources.ColorResources; +import org.tizen.dynamicanalyzer.setting.SettingDataManager; import org.tizen.dynamicanalyzer.shortcut.ShortCutManager; import org.tizen.dynamicanalyzer.swap.logparser.DataManagerRegistry; import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager; +import org.tizen.dynamicanalyzer.ui.page.BaseView; +import org.tizen.dynamicanalyzer.ui.page.PageInfoRegistry; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineTableView; import org.tizen.dynamicanalyzer.util.Logger; +import org.tizen.dynamicanalyzer.util.WorkbenchUtil; import org.tizen.dynamicanalyzer.widgets.da.view.DABaseComposite; import org.tizen.dynamicanalyzer.widgets.da.view.DAPageComposite; import org.tizen.dynamicanalyzer.widgets.da.view.DATabComposite; @@ -60,6 +66,11 @@ public class NetworkPage extends DAPageComposite { SashForm bottomForm; boolean isDetailMode = true; + + int tableHeight = -1; + int tableWeight = 65; + + boolean wasSashCreated = false; public NetworkPage(Composite parent, int style) { super(parent, style); @@ -110,7 +121,31 @@ public class NetworkPage extends DAPageComposite { bottomLeftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH); bottomRightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH); - bottomForm.setWeights(new int[] { 65, 35 }); + bottomForm.setWeights(new int[] { tableWeight, 100 - tableWeight }); + + addTableWeightListener(); + } + + private void addHeightWeightListener() { + if(baseForm.getChildren().length > 2) { + ((Sash)baseForm.getChildren()[2]).addListener(SWT.MouseUp, new Listener() { + @Override + public void handleEvent(Event event) { + tableHeight = (int)((double)baseForm.getWeights()[0] / baseForm.getWeights()[0] + baseForm.getWeights()[1]) * baseForm.getSize().y * 1/1000; + } + }); + + wasSashCreated = true; + } + } + + private void addTableWeightListener() { + ((SashForm)bottomForm.getChildren()[0]).addListener(SWT.Resize, new Listener(){ + @Override + public void handleEvent(Event event) { + resizeTableButton(); + } + }); } @Override @@ -131,10 +166,18 @@ public class NetworkPage extends DAPageComposite { @Override protected void onResized(int width, int height) { + if(!wasSashCreated) { // This variable needs to check whether a Sash was created to calculate height ratio between chart area and table area + addHeightWeightListener(); + } + + resizePageButton(); + resizeTableButton(); + if(!isDetailMode) { baseForm.setWeights(new int[] { 100, 0 }); } else { - int hrate = (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height); + int hrate = (tableHeight == -1) ? (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height) : + (int) (tableHeight * 100 / height); if(hrate > 100) { return; @@ -144,6 +187,23 @@ public class NetworkPage extends DAPageComposite { } } + private void resizePageButton() { + int width = WorkbenchUtil.getWorkbenchWindow().getShell().getBounds().width; + int pageCount = PageInfoRegistry.getPageNamesByTarget(SettingDataManager.INSTANCE.getConnectedTarget().getTargetName()).size(); + + int newWidth = (width/pageCount > DATabComposite.LONG_TAB_WIDTH) ? DATabComposite.LONG_TAB_WIDTH : width/pageCount; + ((BaseView)WorkbenchUtil.getViewPart(BaseView.ID)).getMainTab().updateTabButtonsWidth(newWidth); + } + + private void resizeTableButton() { + double weight = (double) bottomForm.getWeights()[0] / 1000; + int width = (int) (WorkbenchUtil.getWorkbenchWindow().getShell().getBounds().width * weight); + int tabCount = networkAPITableView.getTabButtons().size(); + + int newWidth = (width/tabCount > DATabComposite.LONG_TAB_WIDTH) ? DATabComposite.LONG_TAB_WIDTH : width/tabCount; + networkAPITableView.updateTabButtonsWidth(newWidth); + } + @Override public void clear() { super.clear(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkTable.java index 5590baf..815b6a5 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/NetworkTable.java @@ -32,8 +32,11 @@ import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; +import org.eclipse.nebula.widgets.grid.Grid; import org.eclipse.nebula.widgets.grid.GridColumn; import org.eclipse.nebula.widgets.grid.GridItem; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.widgets.Composite; @@ -45,13 +48,28 @@ import org.tizen.dynamicanalyzer.error.ErrorCodeManager; import org.tizen.dynamicanalyzer.logparser.LogCenterConstants; import org.tizen.dynamicanalyzer.model.FilterProperty; import org.tizen.dynamicanalyzer.model.TableInput; +import org.tizen.dynamicanalyzer.ui.file.FileChartView; +import org.tizen.dynamicanalyzer.ui.file.FilePage; +import org.tizen.dynamicanalyzer.ui.memory.MemoryChartView; +import org.tizen.dynamicanalyzer.ui.memory.MemoryPage; import org.tizen.dynamicanalyzer.ui.network.data.NetworkAPIDBManager; import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager; import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkAPIType; import org.tizen.dynamicanalyzer.ui.network.data.type.NetworkSelectionType; +import org.tizen.dynamicanalyzer.ui.opengl.GLPage; +import org.tizen.dynamicanalyzer.ui.opengl.chart.GLChartView; +import org.tizen.dynamicanalyzer.ui.page.BaseView; +import org.tizen.dynamicanalyzer.ui.range.RangeDataManager; +import org.tizen.dynamicanalyzer.ui.thread.ThreadPage; +import org.tizen.dynamicanalyzer.ui.thread.chart.ThreadChartView; +import org.tizen.dynamicanalyzer.ui.timeline.TimelinePage; +import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartView; +import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants; import org.tizen.dynamicanalyzer.ui.toolbar.Toolbar; import org.tizen.dynamicanalyzer.ui.widgets.table.DAApiListTableComposite; import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat; +import org.tizen.dynamicanalyzer.util.WorkbenchUtil; +import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; import org.tizen.dynamicanalyzer.utils.Formatter; public class NetworkTable extends DAApiListTableComposite { @@ -94,6 +112,67 @@ public class NetworkTable extends DAApiListTableComposite { public void widgetDefaultSelected(SelectionEvent e) { } }); + + table.addMouseListener(new MouseListener() { + + @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) { + GridItem[] ti = ((Grid) e.widget).getSelection(); + if (null == ti || ti.length == 0) { + return; + } + List markerData = ((DATableDataFormat) ti[0].getData()).getData(); + long markerTime = Long.parseLong((String)markerData.get(1)); + addMarker(markerTime); + } + }); + } + + private void addMarker(long markerTime) { + double startMarkerTime = markerTime / (TimelineConstants.MEGA_DOUBLE); + + TimelineChartView TLchartView = (TimelineChartView) AnalyzerUtil.getView(TimelinePage.pageID, TimelineChartView.class.getName()); + NetworkChartView NETchartView = (NetworkChartView) AnalyzerUtil.getView(NetworkPage.pageID, NetworkChartView.class.getName()); + ThreadChartView THRchartView = (ThreadChartView) AnalyzerUtil.getView(ThreadPage.pageID, ThreadChartView.class.getName()); + FileChartView FLchartView = (FileChartView) AnalyzerUtil.getView(FilePage.pageID, FileChartView.class.getName()); + GLChartView GLchartview = (GLChartView) AnalyzerUtil.getView(GLPage.pageID, GLChartView.class.getName()); + MemoryChartView MMchartView = (MemoryChartView) AnalyzerUtil.getView(MemoryPage.pageID, MemoryChartView.class.getName()); + + //1. add marker to rangedatamanager + RangeDataManager.getInstance().addMarkerTime(markerTime); + + //2. add marker to toolbar + Toolbar.INSTANCE.addMarkerTime(startMarkerTime); + + if(TLchartView != null) + TLchartView.updateView(); + if(NETchartView != null) + NETchartView.updateView(); + if(THRchartView != null) + THRchartView.updateView(); + if(FLchartView != null) + FLchartView.updateView(); + if(GLchartview != null) + GLchartview.updateView(); + if(MMchartView != null) + MMchartView.updateView(); + + AnalyzerUtil.getMainTab().getTopComposite().updateView(); + /// draw marker clearly + BaseView baseView = (BaseView) WorkbenchUtil.getViewPart(BaseView.ID); + baseView.getTopComposite().updateView(); } @Override diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/GLPage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/GLPage.java index ec861e9..b1fba8b 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/GLPage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/GLPage.java @@ -33,6 +33,8 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Sash; import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.nl.AnalyzerLabels; @@ -46,13 +48,17 @@ import org.tizen.dynamicanalyzer.ui.opengl.table.state.GLProgramTableView; import org.tizen.dynamicanalyzer.ui.opengl.table.state.GLRedundantTableView; import org.tizen.dynamicanalyzer.ui.opengl.table.state.GLStatisticsTableView; import org.tizen.dynamicanalyzer.ui.opengl.table.state.GLTextureTableView; +import org.tizen.dynamicanalyzer.ui.page.BaseView; +import org.tizen.dynamicanalyzer.ui.page.PageInfoRegistry; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineTableView; import org.tizen.dynamicanalyzer.util.Logger; +import org.tizen.dynamicanalyzer.util.WorkbenchUtil; import org.tizen.dynamicanalyzer.widgets.da.view.DABaseComposite; import org.tizen.dynamicanalyzer.widgets.da.view.DAPageComposite; import org.tizen.dynamicanalyzer.widgets.da.view.DATabComposite; import org.tizen.dynamicanalyzer.widgets.da.view.DAViewComposite; import org.tizen.dynamicanalyzer.resources.ColorResources; +import org.tizen.dynamicanalyzer.setting.SettingDataManager; public class GLPage extends DAPageComposite { public static final String pageID = GLPage.class.getName(); @@ -76,6 +82,8 @@ public class GLPage extends DAPageComposite { SashForm baseForm; SashForm topForm; SashForm bottomForm; + SashForm bottomLeftForm; + SashForm bottomRightForm; GLChartView glChartView; GLAPIListView glAPIListView; @@ -88,6 +96,11 @@ public class GLPage extends DAPageComposite { boolean isDetailMode = true; + int tableHeight = -1; + int tableWeight = 50; + + boolean wasSashCreated = false; + public GLPage(Composite parent, int style) { super(parent, style); setTitle(AnalyzerLabels.COOLBAR_AREA_OPENGLES); @@ -105,7 +118,16 @@ public class GLPage extends DAPageComposite { addView(glChartView); bottomForm = new SashForm(baseForm, SWT.HORIZONTAL); - glLeftTableView = new DATabComposite(bottomForm, SWT.NONE, false, true); + + bottomLeftForm = new SashForm(bottomForm, SWT.NONE); + bottomLeftForm.setForeground(ColorResources.TAB_SELECTED_COLOR_START); + bottomLeftForm.setLayout(new FillLayout()); + + bottomRightForm = new SashForm(bottomForm, SWT.NONE); + bottomRightForm.setForeground(ColorResources.TAB_SELECTED_COLOR_START); + bottomRightForm.setLayout(new FillLayout()); + + glLeftTableView = new DATabComposite(bottomLeftForm, SWT.NONE, false, true); { GLStatisticsTableView glStatisticsView = new GLStatisticsTableView(glLeftTableView.getContentComposite(), SWT.NONE); glLeftTableView.addView(glStatisticsView); @@ -117,7 +139,7 @@ public class GLPage extends DAPageComposite { } addView(glLeftTableView); - glRightTableView = new DATabComposite(bottomForm, SWT.NONE, false, true); + glRightTableView = new DATabComposite(bottomRightForm, SWT.NONE, false, true); { GLRedundantTableView glRedundantView = new GLRedundantTableView(glRightTableView.getContentComposite(), SWT.NONE); glRightTableView.addView(glRedundantView); @@ -139,6 +161,35 @@ public class GLPage extends DAPageComposite { topForm.setSashWidth(AnalyzerConstants.SASH_WIDTH); bottomForm.setSashWidth(AnalyzerConstants.SASH_WIDTH); + bottomLeftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH); + bottomRightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH); + + bottomForm.setWeights(new int[] { tableWeight, 100 - tableWeight }); + + addTableWeightListener(); + } + + private void addTableWeightListener() { + ((SashForm)bottomForm.getChildren()[0]).addListener(SWT.Resize, new Listener(){ + @Override + public void handleEvent(Event event) { + resizeLeftTableButton(); + resizeRightTableButton(); + } + }); + } + + private void addHeightWeightListener() { + if(baseForm.getChildren().length > 2) { + ((Sash)baseForm.getChildren()[2]).addListener(SWT.MouseUp, new Listener() { + @Override + public void handleEvent(Event event) { + tableHeight = (int)((double)baseForm.getWeights()[0] / baseForm.getWeights()[0] + baseForm.getWeights()[1]) * baseForm.getSize().y * 1/1000; + } + }); + + wasSashCreated = true; + } } @Override @@ -159,10 +210,19 @@ public class GLPage extends DAPageComposite { @Override protected void onResized(int width, int height) { + if(!wasSashCreated) { // This variable needs to check whether a Sash was created to calculate height ratio between chart area and table area + addHeightWeightListener(); + } + + resizePageButton(); + resizeLeftTableButton(); + resizeRightTableButton(); + if(!isDetailMode) { baseForm.setWeights(new int[] { 100, 0 }); } else { - int hrate = (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height); + int hrate = (tableHeight == -1) ? (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height) : + (int) (tableHeight * 100 / height); if(hrate > 100) { return; @@ -171,6 +231,32 @@ public class GLPage extends DAPageComposite { baseForm.setWeights(new int[] { 100 - hrate, hrate }); } } + + private void resizePageButton() { + int width = WorkbenchUtil.getWorkbenchWindow().getShell().getBounds().width; + int pageCount = PageInfoRegistry.getPageNamesByTarget(SettingDataManager.INSTANCE.getConnectedTarget().getTargetName()).size(); + + int newWidth = (width/pageCount > DATabComposite.LONG_TAB_WIDTH) ? DATabComposite.LONG_TAB_WIDTH : width/pageCount; + ((BaseView)WorkbenchUtil.getViewPart(BaseView.ID)).getMainTab().updateTabButtonsWidth(newWidth); + } + + private void resizeLeftTableButton() { + double weight = (double) bottomForm.getWeights()[0] / 1000; + int width = (int) (WorkbenchUtil.getWorkbenchWindow().getShell().getBounds().width * weight); + int tabCount = glLeftTableView.getTabButtons().size(); + + int newWidth = (width/tabCount > DATabComposite.LONG_TAB_WIDTH) ? DATabComposite.LONG_TAB_WIDTH : width/tabCount; + glLeftTableView.updateTabButtonsWidth(newWidth); + } + + private void resizeRightTableButton() { + double weight = (double) bottomForm.getWeights()[1] / 1000; + int width = (int) (WorkbenchUtil.getWorkbenchWindow().getShell().getBounds().width * weight); + int tabCount = glRightTableView.getTabButtons().size(); + + int newWidth = (width/tabCount > DATabComposite.LONG_TAB_WIDTH) ? DATabComposite.LONG_TAB_WIDTH : width/tabCount; + glRightTableView.updateTabButtonsWidth(newWidth); + } @Override public void clear() { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/api/GLAPITable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/api/GLAPITable.java index f427f10..019cb0e 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/api/GLAPITable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/api/GLAPITable.java @@ -59,7 +59,6 @@ public class GLAPITable extends DATableComposite { public GLAPITable(Composite parent, int style, int tableStyle) { super(parent, style, tableStyle); - setContextMenu(AnalyzerConstants.CONTEXT_TABLE_RANGE); table.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLContextTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLContextTable.java index 6841cd8..108edf5 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLContextTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLContextTable.java @@ -80,7 +80,6 @@ public class GLContextTable extends DATableComposite { public GLContextTable(Composite parent, int style, int tableStyle) { super(parent, style, tableStyle); - setContextMenu(AnalyzerConstants.CONTEXT_TABLE_RANGE); table.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLProgramTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLProgramTable.java index f808eb9..641010c 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLProgramTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLProgramTable.java @@ -49,7 +49,6 @@ public class GLProgramTable extends DATableComposite { public GLProgramTable(Composite parent, int style, int tableStyle) { super(parent, style, tableStyle); - setContextMenu(AnalyzerConstants.CONTEXT_TABLE_RANGE); table.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLRedundantTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLRedundantTable.java index 7877252..593f339 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLRedundantTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLRedundantTable.java @@ -51,7 +51,6 @@ public class GLRedundantTable extends DATableComposite { public GLRedundantTable(Composite parent, int style, int tableStyle) { super(parent, style, tableStyle); - setContextMenu(AnalyzerConstants.CONTEXT_TABLE_RANGE); table.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLStatisticsTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLStatisticsTable.java index 57cb918..bd09ab5 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLStatisticsTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLStatisticsTable.java @@ -48,7 +48,6 @@ import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat; public class GLStatisticsTable extends DATableComposite { public GLStatisticsTable(Composite parent, int style, int tableStyle) { super(parent, style, tableStyle); - setContextMenu(AnalyzerConstants.CONTEXT_TABLE_RANGE); table.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLTextureTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLTextureTable.java index cec0703..3cd04d4 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLTextureTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/opengl/table/state/GLTextureTable.java @@ -50,7 +50,6 @@ public class GLTextureTable extends DATableComposite { public GLTextureTable(Composite parent, int style, int tableStyle) { super(parent, style, tableStyle); - setContextMenu(AnalyzerConstants.CONTEXT_TABLE_RANGE); table.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/BaseView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/BaseView.java index f04d6f9..8be3dc9 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/BaseView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/BaseView.java @@ -149,23 +149,7 @@ public class BaseView extends ViewPart { currentShell.close(); } else if(((e.stateMask & SWT.CTRL) == SWT.CTRL) && (e.keyCode == 'n')) { if(MenuBar.getInstance().getFileNew().isEnabled()) { - CommonAction.clear(); - Toolbar.INSTANCE.clearMarkerTimeList(); - RangeDataManager.getInstance().clearMarkerTime(); - RangeDataManager.getInstance().clearTimelineMarker(); - - // change UI state - Toolbar.INSTANCE.changeUIState(DAState.INIT); - Toolbar.INSTANCE.setScaleSelection(DAScale.DEFAULT_SCALE_INDEX); - - FlatFeatureDialog featureDialog = new FlatFeatureDialog(currentShell); - featureDialog.open(); - - /// if Feature Select changed and OK, is NewSetting is true. - if(SettingDataManager.INSTANCE.isNewSetting()){ - // reset checks on ReportMenu items - MenuBar.getInstance().resetReportItemCheck(); - } + MenuBar.getInstance().getFileNew().notifyListeners(SWT.Selection, new Event()); } } else if(((e.stateMask & SWT.CTRL) == SWT.CTRL) && (e.keyCode == 't')) { TargetDialog targetDialog = new TargetDialog(currentShell); @@ -177,8 +161,6 @@ public class BaseView extends ViewPart { MenuBar.getInstance().getViewDetail().setSelection(true); } MenuBar.getInstance().getViewDetail().notifyListeners(SWT.Selection, new Event()); - } else if(((e.stateMask & SWT.CTRL) == SWT.CTRL) && (e.keyCode == 'f')) { - MenuBar.getInstance().getAnalyzeSearch().notifyListeners(SWT.Selection, new Event()); } else if(e.keyCode == SWT.F9) { if(DAState.isRunning()) { TargetData target = SettingDataManager.INSTANCE.getConnectedTarget(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/MenuBar.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/MenuBar.java index 4bf0707..5d09e5e 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/MenuBar.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/page/MenuBar.java @@ -485,6 +485,7 @@ public class MenuBar { tableView.removeView(WarningDataView.class.getName(), false); } } + ((TimelinePage)AnalyzerUtil.getTabPage(TimelinePage.pageID)).resizeTableButton(); } }; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadAPIListTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadAPIListTable.java index 3065f79..b2e4057 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadAPIListTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadAPIListTable.java @@ -34,8 +34,11 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; +import org.eclipse.nebula.widgets.grid.Grid; import org.eclipse.nebula.widgets.grid.GridColumn; import org.eclipse.nebula.widgets.grid.GridItem; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.widgets.Composite; @@ -49,6 +52,17 @@ import org.tizen.dynamicanalyzer.model.FilterProperty; import org.tizen.dynamicanalyzer.model.TableInput; import org.tizen.dynamicanalyzer.swap.model.data.ProbeCommonData; import org.tizen.dynamicanalyzer.swap.model.data.SyncData; +import org.tizen.dynamicanalyzer.ui.file.FileChartView; +import org.tizen.dynamicanalyzer.ui.file.FilePage; +import org.tizen.dynamicanalyzer.ui.memory.MemoryChartView; +import org.tizen.dynamicanalyzer.ui.memory.MemoryPage; +import org.tizen.dynamicanalyzer.ui.network.NetworkChartView; +import org.tizen.dynamicanalyzer.ui.network.NetworkPage; +import org.tizen.dynamicanalyzer.ui.opengl.GLPage; +import org.tizen.dynamicanalyzer.ui.opengl.chart.GLChartView; +import org.tizen.dynamicanalyzer.ui.page.BaseView; +import org.tizen.dynamicanalyzer.ui.range.RangeDataManager; +import org.tizen.dynamicanalyzer.ui.thread.chart.ThreadChartView; import org.tizen.dynamicanalyzer.ui.thread.data.ThreadDataManager; import org.tizen.dynamicanalyzer.ui.thread.db.SyncAPIDBTable; import org.tizen.dynamicanalyzer.ui.thread.db.ThreadAPIDBTable; @@ -56,9 +70,15 @@ import org.tizen.dynamicanalyzer.ui.thread.type.ThreadPageData; import org.tizen.dynamicanalyzer.ui.thread.type.ThreadPageSyncData; import org.tizen.dynamicanalyzer.ui.thread.type.ThreadPageSyncDataEvent; import org.tizen.dynamicanalyzer.ui.thread.type.ThreadPageThreadData; +import org.tizen.dynamicanalyzer.ui.timeline.TimelinePage; +import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartView; +import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants; +import org.tizen.dynamicanalyzer.ui.toolbar.Toolbar; import org.tizen.dynamicanalyzer.ui.widgets.table.DAApiListTableComposite; import org.tizen.dynamicanalyzer.ui.widgets.table.DATableDataFormat; import org.tizen.dynamicanalyzer.util.Logger; +import org.tizen.dynamicanalyzer.util.WorkbenchUtil; +import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; import org.tizen.dynamicanalyzer.utils.Formatter; public class ThreadAPIListTable extends DAApiListTableComposite { @@ -107,6 +127,67 @@ public class ThreadAPIListTable extends DAApiListTableComposite { // do nothing } }); + + table.addMouseListener(new MouseListener() { + + @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) { + GridItem[] ti = ((Grid) e.widget).getSelection(); + if (null == ti || ti.length == 0) { + return; + } + List markerData = ((DATableDataFormat) ti[0].getData()).getData(); + long markerTime = Long.parseLong((String)markerData.get(1)); + addMarker(markerTime); + } + }); + } + + private void addMarker(long markerTime) { + double startMarkerTime = markerTime / (TimelineConstants.MEGA_DOUBLE); + + TimelineChartView TLchartView = (TimelineChartView) AnalyzerUtil.getView(TimelinePage.pageID, TimelineChartView.class.getName()); + NetworkChartView NETchartView = (NetworkChartView) AnalyzerUtil.getView(NetworkPage.pageID, NetworkChartView.class.getName()); + ThreadChartView THRchartView = (ThreadChartView) AnalyzerUtil.getView(ThreadPage.pageID, ThreadChartView.class.getName()); + FileChartView FLchartView = (FileChartView) AnalyzerUtil.getView(FilePage.pageID, FileChartView.class.getName()); + GLChartView GLchartview = (GLChartView) AnalyzerUtil.getView(GLPage.pageID, GLChartView.class.getName()); + MemoryChartView MMchartView = (MemoryChartView) AnalyzerUtil.getView(MemoryPage.pageID, MemoryChartView.class.getName()); + + //1. add marker to rangedatamanager + RangeDataManager.getInstance().addMarkerTime(markerTime); + + //2. add marker to toolbar + Toolbar.INSTANCE.addMarkerTime(startMarkerTime); + + if(TLchartView != null) + TLchartView.updateView(); + if(NETchartView != null) + NETchartView.updateView(); + if(THRchartView != null) + THRchartView.updateView(); + if(FLchartView != null) + FLchartView.updateView(); + if(GLchartview != null) + GLchartview.updateView(); + if(MMchartView != null) + MMchartView.updateView(); + + AnalyzerUtil.getMainTab().getTopComposite().updateView(); + /// draw marker clearly + BaseView baseView = (BaseView) WorkbenchUtil.getViewPart(BaseView.ID); + baseView.getTopComposite().updateView(); } @Override diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadPage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadPage.java index a48d1e7..ab03c00 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadPage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/ThreadPage.java @@ -34,16 +34,22 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Sash; import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.nl.AnalyzerLabels; import org.tizen.dynamicanalyzer.resources.ColorResources; +import org.tizen.dynamicanalyzer.setting.SettingDataManager; import org.tizen.dynamicanalyzer.shortcut.ShortCutManager; import org.tizen.dynamicanalyzer.swap.logparser.DataManagerRegistry; +import org.tizen.dynamicanalyzer.ui.page.BaseView; +import org.tizen.dynamicanalyzer.ui.page.PageInfoRegistry; import org.tizen.dynamicanalyzer.ui.thread.chart.ThreadChartView; import org.tizen.dynamicanalyzer.ui.thread.data.ThreadDataManager; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineTableView; import org.tizen.dynamicanalyzer.util.Logger; +import org.tizen.dynamicanalyzer.util.WorkbenchUtil; import org.tizen.dynamicanalyzer.widgets.da.view.DABaseComposite; import org.tizen.dynamicanalyzer.widgets.da.view.DAPageComposite; import org.tizen.dynamicanalyzer.widgets.da.view.DATabComposite; @@ -63,6 +69,11 @@ public class ThreadPage extends DAPageComposite { SashForm bottomForm; boolean isDetailMode = true; + + int tableHeight = -1; + int tableWeight = 65; + + boolean wasSashCreated = false; public ThreadPage(Composite parent, int style) { super(parent, style); @@ -115,7 +126,31 @@ public class ThreadPage extends DAPageComposite { bottomLeftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH); bottomRightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH); - bottomForm.setWeights(new int[] { 65, 35 }); + bottomForm.setWeights(new int[] { tableWeight, 100 - tableWeight }); + + addTableWeightListener(); + } + + private void addHeightWeightListener() { + if(baseForm.getChildren().length > 2) { + ((Sash)baseForm.getChildren()[2]).addListener(SWT.MouseUp, new Listener() { + @Override + public void handleEvent(Event event) { + tableHeight = (int)((double)baseForm.getWeights()[0] / baseForm.getWeights()[0] + baseForm.getWeights()[1]) * baseForm.getSize().y * 1/1000; + } + }); + + wasSashCreated = true; + } + } + + private void addTableWeightListener() { + ((SashForm)bottomForm.getChildren()[0]).addListener(SWT.Resize, new Listener(){ + @Override + public void handleEvent(Event event) { + resizeTableButton(); + } + }); } @Override @@ -136,10 +171,18 @@ public class ThreadPage extends DAPageComposite { @Override protected void onResized(int width, int height) { + if(!wasSashCreated) { // This variable needs to check whether a Sash was created to calculate height ratio between chart area and table area + addHeightWeightListener(); + } + + resizePageButton(); + resizeTableButton(); + if(!isDetailMode) { baseForm.setWeights(new int[] { 100, 0 }); } else { - int hrate = (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height); + int hrate = (tableHeight == -1) ? (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height) : + (int) (tableHeight * 100 / height); if(hrate > 100) { return; @@ -149,6 +192,23 @@ public class ThreadPage extends DAPageComposite { } } + private void resizePageButton() { + int width = WorkbenchUtil.getWorkbenchWindow().getShell().getBounds().width; + int pageCount = PageInfoRegistry.getPageNamesByTarget(SettingDataManager.INSTANCE.getConnectedTarget().getTargetName()).size(); + + int newWidth = (width/pageCount > DATabComposite.LONG_TAB_WIDTH) ? DATabComposite.LONG_TAB_WIDTH : width/pageCount; + ((BaseView)WorkbenchUtil.getViewPart(BaseView.ID)).getMainTab().updateTabButtonsWidth(newWidth); + } + + private void resizeTableButton() { + double weight = (double) bottomForm.getWeights()[0] / 1000; + int width = (int) (WorkbenchUtil.getWorkbenchWindow().getShell().getBounds().width * weight); + int tabCount = threadApiTableView.getTabButtons().size(); + + int newWidth = (width/tabCount > DATabComposite.LONG_TAB_WIDTH) ? DATabComposite.LONG_TAB_WIDTH : width/tabCount; + threadApiTableView.updateTabButtonsWidth(newWidth); + } + @Override public void clear() { super.clear(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/chart/SyncChartBoard.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/chart/SyncChartBoard.java index 5198bd1..ec3b426 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/chart/SyncChartBoard.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/chart/SyncChartBoard.java @@ -412,4 +412,8 @@ public class SyncChartBoard extends DAChartBoard { } return returnList; } + + public List getSyncChartList() { + return syncChartItemList; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/chart/ThreadChartView.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/chart/ThreadChartView.java index f1f8a75..9ec6776 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/chart/ThreadChartView.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/thread/chart/ThreadChartView.java @@ -96,9 +96,6 @@ public class ThreadChartView extends DAViewComposite { private DAToolBarCustomCombo threadProcessCombo; private DAToolBarCustomCombo syncProcessCombo; - - private DACustomButton threadDimensionSwitchButton; - private DACustomButton syncDimensionSwitchButton; public ThreadChartView(Composite parent, int style) { super(parent, style, false); @@ -131,110 +128,13 @@ public class ThreadChartView extends DAViewComposite { FormData data = new FormData(); data.top = new FormAttachment(0, 0); data.left = new FormAttachment(0, 0); - data.width = 167; + data.width = 192; data.height = 25; threadProcessCombo.setLayoutData(data); syncProcessCombo = makeDACustomCombo(syncChartBoard.getTitleComp()); syncProcessCombo.setLayoutData(data); - threadDimensionSwitchButton = new DACustomButton(threadChartBoard.getTitleComp(), - ImageResources.DIMENSION_IC_NOR, - ImageResources.DIMENSION_IC_NOR, - ImageResources.DIMENSION_IC_NOR, - ImageResources.DIMENSION_IC_NOR - ); - - syncDimensionSwitchButton = new DACustomButton(syncChartBoard.getTitleComp(), - ImageResources.DIMENSION_IC_SEL, - ImageResources.DIMENSION_IC_SEL, - ImageResources.DIMENSION_IC_SEL, - ImageResources.DIMENSION_IC_SEL - ); - - threadDimensionSwitchButton.setForeground(ColorResources.GRAY_170); - threadDimensionSwitchButton.setBackground(ColorResources.WHITE); - syncDimensionSwitchButton.setForeground(ColorResources.GRAY_170); - syncDimensionSwitchButton.setBackground(ColorResources.WHITE); - - threadDimensionSwitchButton.setRenderer(new DACustomButtonRenderer() { - @Override - public void draw(GC gc, Canvas canvas, int state, - DACustomButtonAttribute attr) { - Rectangle rect = canvas.getClientArea(); - - if (attr.getDrawType() == DACustomButton.TYPE_IMAGE) { - drawImageButton(gc, rect, state, attr); - } else if (attr.getDrawType() == DACustomButton.TYPE_COLOR - || attr.getDrawType() == DACustomButton.TYPE_GRADATION) { - drawButton(gc, rect, state, attr); - } - drawButtonImage(gc, rect, attr, state); - drawIcon(gc, rect, attr); - gc.drawLine(0, 0, 25, 0); - gc.drawLine(0, 24, 25, 24); - gc.drawLine(24, 0, 24, 24); - } - }); - - syncDimensionSwitchButton.setRenderer(new DACustomButtonRenderer() { - @Override - public void draw(GC gc, Canvas canvas, int state, - DACustomButtonAttribute attr) { - Rectangle rect = canvas.getClientArea(); - - if (attr.getDrawType() == DACustomButton.TYPE_IMAGE) { - drawImageButton(gc, rect, state, attr); - } else if (attr.getDrawType() == DACustomButton.TYPE_COLOR - || attr.getDrawType() == DACustomButton.TYPE_GRADATION) { - drawButton(gc, rect, state, attr); - } - drawButtonImage(gc, rect, attr, state); - drawIcon(gc, rect, attr); - gc.drawLine(0, 0, 25, 0); - gc.drawLine(0, 24, 25, 24); - gc.drawLine(24, 0, 24, 24); - } - }); - - threadDimensionSwitchButton.addClickListener(new DACustomButtonClickEventListener() { - @Override - public void handleEvent(Event event) { - changeBoardThreadToSync(); - } - - @Override - public void handleClickEvent(DACustomButton button) { - - } - }); - - syncDimensionSwitchButton.addClickListener(new DACustomButtonClickEventListener() { - @Override - public void handleEvent(Event event) { - changeBoardSyncToThread(); - } - - @Override - public void handleClickEvent(DACustomButton button) { - - } - }); - - data = new FormData(); - data.top = new FormAttachment(0, 0); - data.left = new FormAttachment(threadProcessCombo, 0); - data.width = 25; - data.height = 25; - threadDimensionSwitchButton.setLayoutData(data); - - data = new FormData(); - data.top = new FormAttachment(0, 0); - data.left = new FormAttachment(syncProcessCombo, 0); - data.width = 25; - data.height = 25; - syncDimensionSwitchButton.setLayoutData(data); - initProcessCombo(threadProcessCombo); initProcessCombo(syncProcessCombo); updateScale(); @@ -282,7 +182,7 @@ public class ThreadChartView extends DAViewComposite { ImageResources.DROP_ARROW_DOWN_SEL, ImageResources.DROP_ARROW_DOWN_HOVER, ImageResources.DROP_ARROW_DOWN_DIM); - returnCombo.setComboImagePoint(new Point(135, 9)); + returnCombo.setComboImagePoint(new Point(160, 9)); returnCombo.setComboButtonColor(ColorResources.WHITE, ColorResources.WHITE, ColorResources.WHITE, @@ -603,16 +503,27 @@ public class ThreadChartView extends DAViewComposite { public void updateMarker() { List markerTimeList = Toolbar.INSTANCE.getMarkerTimeList(); - List chartList = threadChartBoard.getThreadChartItemList(); - for(ThreadChart chart : chartList) { - chart.getChart().getPlot().clearMarkerTime(); + + List threadChartList = threadChartBoard.getThreadChartItemList(); + for(ThreadChart threadChart : threadChartList) { + threadChart.getChart().getPlot().clearMarkerTime(); } for(double time : markerTimeList) { - for(ThreadChart chart : chartList) { - chart.getChart().getPlot().addMarkerTime(time); + for(ThreadChart threadChart : threadChartList) { + threadChart.getChart().getPlot().addMarkerTime(time); } threadChartBoard.getTimeline().addMarker(time); } + + List syncChartList = threadChartBoard.getSyncChartList(); + for(SyncChart syncChart : syncChartList) { + syncChart.getChart().getPlot().clearMarkerTime(); + } + for(double time : markerTimeList) { + for(SyncChart syncChart : syncChartList) { + syncChart.getChart().getPlot().addMarkerTime(time); + } + } } @Override diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/SystemDataDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/SystemDataDBTable.java index d1f2489..5d5a042 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/SystemDataDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/SystemDataDBTable.java @@ -37,11 +37,16 @@ import org.tizen.dynamicanalyzer.database.DBConstants; import org.tizen.dynamicanalyzer.database.DBTable; import org.tizen.dynamicanalyzer.util.Logger; +/** + * DB table representing the system information summarized for all running + * processes. + */ public class SystemDataDBTable extends DBTable { private static final String TABLENAME = "TIMELINE_SYSTEM_DATA"; public static enum COLUMN { SAMPLING_TIME, + // CPU load in %, scaled by number of CPU cores to be in range [0-100]% CPU_LOAD_TOTAL, PROCESS_COUNT_OTHER, PROCESS_COUNT_TARGET, diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TargetProcessDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TargetProcessDBTable.java index 354cfa4..d92d387 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TargetProcessDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TargetProcessDBTable.java @@ -37,12 +37,17 @@ import org.tizen.dynamicanalyzer.database.DBConstants; import org.tizen.dynamicanalyzer.database.DBTable; import org.tizen.dynamicanalyzer.util.Logger; +/** + * DB table representing system information for a process of traced application + * (aka "target process") + */ public class TargetProcessDBTable extends DBTable { private static final String TABLENAME = "TIMELINE_TARGET_PROCESS"; public static enum COLUMN { SAMPLING_TIME, PID, + // CPU load in %, scaled by number of CPU cores to be in range [0-100]% CPU_LOAD, MEMORY_VIRTUAL, MEMORY_RESIDENT, diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TimelinePage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TimelinePage.java index 1bfd034..60356e9 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TimelinePage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TimelinePage.java @@ -33,27 +33,30 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Sash; import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.common.Global; import org.tizen.dynamicanalyzer.nl.AnalyzerLabels; import org.tizen.dynamicanalyzer.resources.ColorResources; +import org.tizen.dynamicanalyzer.setting.SettingDataManager; import org.tizen.dynamicanalyzer.shortcut.ShortCutManager; -import org.tizen.dynamicanalyzer.swap.logparser.DataManagerRegistry; import org.tizen.dynamicanalyzer.ui.info.callstack.CallstackView; import org.tizen.dynamicanalyzer.ui.info.screenshot.ScreenshotDataManager; import org.tizen.dynamicanalyzer.ui.interactive.data.InteractiveDataManager; -import org.tizen.dynamicanalyzer.ui.memory.data.MemoryDataManager; +import org.tizen.dynamicanalyzer.ui.page.BaseView; +import org.tizen.dynamicanalyzer.ui.page.PageInfoRegistry; import org.tizen.dynamicanalyzer.ui.summary.SummaryDataManager; import org.tizen.dynamicanalyzer.ui.summary.profiling.FunctionUsageProfiler; import org.tizen.dynamicanalyzer.ui.timeline.calltrace.CallTraceDataManager; import org.tizen.dynamicanalyzer.ui.timeline.calltrace.CallTraceView; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartManager; -import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineDataManager; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartView; +import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineDataManager; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineTableView; -import org.tizen.dynamicanalyzer.ui.timeline.dlog.DLogDataManager; import org.tizen.dynamicanalyzer.ui.toolbar.replay.data.ReplayDataManager; +import org.tizen.dynamicanalyzer.util.WorkbenchUtil; import org.tizen.dynamicanalyzer.widgets.da.view.DABaseComposite; import org.tizen.dynamicanalyzer.widgets.da.view.DAPageComposite; import org.tizen.dynamicanalyzer.widgets.da.view.DATabComposite; @@ -72,6 +75,11 @@ public class TimelinePage extends DAPageComposite { TimelineTableView timelineTableView; boolean isDetailMode = true; + + int tableHeight = -1; + int tableWeight = 65; + + boolean wasSashCreated = false; public TimelinePage(Composite parent, int style) { super(parent, style); @@ -116,7 +124,31 @@ public class TimelinePage extends DAPageComposite { bottomLeftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH); bottomRightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH); - bottomForm.setWeights(new int[] { 65, 35 }); + bottomForm.setWeights(new int[] { tableWeight, 100 - tableWeight }); + + addTableWeightListener(); + } + + private void addHeightWeightListener() { + if(baseForm.getChildren().length > 2) { + ((Sash)baseForm.getChildren()[2]).addListener(SWT.MouseUp, new Listener() { + @Override + public void handleEvent(Event event) { + tableHeight = baseForm.getWeights()[1] * baseForm.getSize().y / 1000; + } + }); + + wasSashCreated = true; + } + } + + private void addTableWeightListener() { + ((SashForm)bottomForm.getChildren()[0]).addListener(SWT.Resize, new Listener(){ + @Override + public void handleEvent(Event event) { + resizeTableButton(); + } + }); } @Override @@ -144,10 +176,18 @@ public class TimelinePage extends DAPageComposite { @Override protected void onResized(int width, int height) { + if(!wasSashCreated) { // This variable needs to check whether a Sash was created to calculate height ratio between chart area and table area + addHeightWeightListener(); + } + + resizePageButton(); + resizeTableButton(); + if(!isDetailMode) { baseForm.setWeights(new int[] { 100, 0 }); } else { - int hrate = (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height); + int hrate = (tableHeight == -1) ? (int) (TimelineTableView.DEFAULT_TABLE_VIEW_HEIGHT * 100 / height) : + (int) (tableHeight * 100 / height); if(hrate > 100) { return; @@ -156,6 +196,23 @@ public class TimelinePage extends DAPageComposite { baseForm.setWeights(new int[] { 100 - hrate, hrate }); } } + + private void resizePageButton() { + int width = WorkbenchUtil.getWorkbenchWindow().getShell().getBounds().width; + int pageCount = PageInfoRegistry.getPageNamesByTarget(SettingDataManager.INSTANCE.getConnectedTarget().getTargetName()).size(); + + int newWidth = (width/pageCount > DATabComposite.LONG_TAB_WIDTH) ? DATabComposite.LONG_TAB_WIDTH : width/pageCount; + ((BaseView)WorkbenchUtil.getViewPart(BaseView.ID)).getMainTab().updateTabButtonsWidth(newWidth); + } + + public void resizeTableButton() { + double weight = (double) bottomForm.getWeights()[0] / 1000; + int width = (int) (WorkbenchUtil.getWorkbenchWindow().getShell().getBounds().width * weight); + int tabCount = timelineTableView.getTabButtons().size(); + + int newWidth = (width/tabCount > DATabComposite.LONG_TAB_WIDTH) ? DATabComposite.LONG_TAB_WIDTH : width/tabCount; + timelineTableView.updateTabButtonsWidth(newWidth); + } @Override public void clear() { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/CallTraceTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/CallTraceTable.java index 9acc98d..26f0f63 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/CallTraceTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/CallTraceTable.java @@ -88,8 +88,7 @@ public class CallTraceTable extends DAWindowingTableComposite { parent.addControlListener(new WindowingTableColumnSizePackListener(this, columnSizes)); setDataType(FunctionEntryDBTable.COLUMN.START_TIME.index); // use new DB - setContextMenu(AnalyzerConstants.CONTEXT_TABLE_SOURCE - | AnalyzerConstants.CONTEXT_TABLE_RANGE); + setContextMenu(AnalyzerConstants.CONTEXT_TABLE_SOURCE); table.addSelectionListener(new SelectionListener() { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUChart.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUChart.java index 40c9683..f2b82fd 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUChart.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/chart/CPUChart.java @@ -61,7 +61,17 @@ import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem; import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenu; public class CPUChart extends TimelineChart { + /** + * For each time moment this series presents + * the summary CPU load(%) for all processes of traced application. + * The CPU load is scaled by number of CPU cores to be in range [0-100]% + */ private DAChartSeries appLoadSeries; + /** + * For each time moment this series presents + * the summary CPU load(%) for all processes in system. + * The CPU load is scaled by number of CPU cores to be in range [0-100]% + */ private DAChartSeries totalLoadSeries; private DAChartBoard chartBoard = null; @@ -187,6 +197,7 @@ public class CPUChart extends TimelineChart { / TimelineConstants.MEGA_DOUBLE; try { + // systemAvgLoad is already scaled by number of CPU cores to be in range [0-100]% double systemAvgLoad = (Float) row.get(SystemDataDBTable.COLUMN.CPU_LOAD_TOTAL .ordinal()); totalLoadSeries.addSeriesItem(new DAChartSeriesItem(time, systemAvgLoad, Formatter @@ -235,6 +246,7 @@ public class CPUChart extends TimelineChart { for (int i = 0; i < data.size(); i++) { List oneTime = data.get(i); Long time = (Long) oneTime.get(TargetProcessDBTable.COLUMN.SAMPLING_TIME.ordinal()); + // cpuLoad is already scaled by number of CPU cores to be in range [0-100]% Float cpuLoad = (Float) oneTime.get(TargetProcessDBTable.COLUMN.CPU_LOAD.ordinal()); Float processLoadSum = processLoadSumMap.get(time); if (processLoadSum == null) { @@ -251,10 +263,10 @@ public class CPUChart extends TimelineChart { Iterator iterProcessLoadSum = timeSortedLoadList.iterator(); while (iterProcessLoadSum.hasNext()) { Long time = iterProcessLoadSum.next(); + // cpuLoadSum is already scaled by number of CPU cores to be in range [0-100]% Float cpuLoadSum = processLoadSumMap.get(time); - double cpuAvgLoad = cpuLoadSum / coreSize; appLoadSeries.addSeriesItem(new DAChartSeriesItem(time / TimelineConstants.MEGA_DOUBLE, - cpuAvgLoad, Formatter.toPercentageFormat(cpuAvgLoad))); + cpuLoadSum.doubleValue(), Formatter.toPercentageFormat(cpuLoadSum.doubleValue()))); } if (prevChildSize != childSeriesMap.size()) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineDataManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineDataManager.java index d4bd64c..4308de7 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineDataManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineDataManager.java @@ -200,7 +200,8 @@ public class TimelineDataManager extends PageDataManager { /* * Make SystemData Table data */ - double systemAvgCPULoad = log.getTotalCPULoad() / coreSize; + // systemAvgCPULoad is already scaled by number of CPU cores to be in range [0-100]% + double systemAvgCPULoad = log.getTotalCPULoad(); ArrayList dbSystemData = new ArrayList(); dbSystemData.add(new Long(log.getTime())); dbSystemData.add(new Float(systemAvgCPULoad)); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/dlog/DlogTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/dlog/DlogTable.java index d31ee34..5b181ec 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/dlog/DlogTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/dlog/DlogTable.java @@ -39,15 +39,13 @@ import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Menu; -import org.eclipse.swt.widgets.MenuItem; -import org.eclipse.swt.widgets.Shell; import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.common.DASelectionData; import org.tizen.dynamicanalyzer.common.Global; import org.tizen.dynamicanalyzer.model.TableInput; import org.tizen.dynamicanalyzer.resources.ColorResources; +import org.tizen.dynamicanalyzer.resources.FontResources; import org.tizen.dynamicanalyzer.ui.common.UICommonConstants; import org.tizen.dynamicanalyzer.ui.file.FileChartView; import org.tizen.dynamicanalyzer.ui.file.FilePage; @@ -73,11 +71,14 @@ import org.tizen.dynamicanalyzer.util.WorkbenchUtil; import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; import org.tizen.dynamicanalyzer.utils.Formatter; import org.tizen.dynamicanalyzer.widgets.chart.DAChartPlotIntervalMarker; +import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenu; +import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenuItem; +import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenuListener; import org.tizen.sdblib.util.StringUtil; public class DlogTable extends DATableComposite { - private String[] columnNames = {"Time", "Level", "Pid", "Tid", "Tag", "Message" }; //6col + private String[] columnNames = {"Time", "Level", "PID", "TID", "Tag", "Message" }; //6col private int[] columnSizes = { 70, 50, 60, 60, 80, 600}; private int[] columnAlignment = { SWT.CENTER, SWT.CENTER, SWT.CENTER, SWT.CENTER, SWT.LEFT, SWT.LEFT }; private boolean[] columnVisibility = { true, true, true, true, true, true }; @@ -88,6 +89,17 @@ public class DlogTable extends DATableComposite { private List dlogClone = new ArrayList(); private List filteredDlog = new ArrayList(); private static boolean isFilter = false; + + private static String POPUP_FILTER_BY_LEVEL = "Filter by selected Level"; + private static String POPUP_FILTER_BY_PID = "Filter by selected PID"; + private static String POPUP_FILTER_BY_TID = "Filter by selected TID"; + private static String POPUP_FILTER_BY_TAG = "Filter by selected Tag"; + private static String POPUP_SHOW_ALL_DLOGS = "Show all Dlogs"; + + private static int TABLE_INDEX_LEVEL = 1; + private static int TABLE_INDEX_PID = 2; + private static int TABLE_INDEX_TID = 3; + private static int TABLE_INDEX_TAG = 4; public DlogTable(Composite parent, int compStyle, int tableStyle) { super(parent, compStyle, tableStyle); @@ -103,6 +115,91 @@ public class DlogTable extends DATableComposite { parent.addControlListener(new TableColumnSizePackListener(this, columnSizes)); initDlogListeners(); + initPopupMenu(); + } + + private void initPopupMenu() { + popupMenu = new DAPopupMenu(table); + popupMenu.setFont(FontResources.CONTEXT_MENU_ITEM_FONT); + + DAPopupMenuItem filterByLevelItem = new DAPopupMenuItem(popupMenu); + filterByLevelItem.setText(POPUP_FILTER_BY_LEVEL); + filterByLevelItem.addListener(new DAPopupMenuListener() { + @Override + public void widgetSelected(DAPopupMenuItem menuItem) { + GridItem item = table.getItem(new Point(mousePoint.x, mousePoint.y)); + if (null == item) { + return; + } + + String startData = ((DATableDataFormat) item.getData()).getData().get(TABLE_INDEX_LEVEL).toString(); + filterTable(startData, TABLE_INDEX_LEVEL); + } + }); + + DAPopupMenuItem filterByLevelPID = new DAPopupMenuItem(popupMenu); + filterByLevelPID.setText(POPUP_FILTER_BY_PID); + filterByLevelPID.addListener(new DAPopupMenuListener() { + @Override + public void widgetSelected(DAPopupMenuItem menuItem) { + GridItem item = table.getItem(new Point(mousePoint.x, mousePoint.y)); + if (null == item) { + return; + } + + String startData = ((DATableDataFormat) item.getData()).getData().get(TABLE_INDEX_PID).toString(); + filterTable(startData, TABLE_INDEX_PID); + } + }); + + DAPopupMenuItem filterByLevelTID = new DAPopupMenuItem(popupMenu); + filterByLevelTID.setText(POPUP_FILTER_BY_TID); + filterByLevelTID.addListener(new DAPopupMenuListener() { + @Override + public void widgetSelected(DAPopupMenuItem menuItem) { + GridItem item = table.getItem(new Point(mousePoint.x, mousePoint.y)); + if (null == item) { + return; + } + + String startData = ((DATableDataFormat) item.getData()).getData().get(TABLE_INDEX_TID).toString(); + filterTable(startData, TABLE_INDEX_TID); + } + }); + + DAPopupMenuItem filterByTagItem = new DAPopupMenuItem(popupMenu); + filterByTagItem.setText(POPUP_FILTER_BY_TAG); + filterByTagItem.addListener(new DAPopupMenuListener() { + @Override + public void widgetSelected(DAPopupMenuItem menuItem) { + GridItem item = table.getItem(new Point(mousePoint.x, mousePoint.y)); + if (null == item) { + return; + } + + String startData = ((DATableDataFormat) item.getData()).getData().get(TABLE_INDEX_TAG).toString(); + filterTable(startData, TABLE_INDEX_TAG); + } + }); + + + + DAPopupMenuItem allDlogShowItem = new DAPopupMenuItem(popupMenu); + allDlogShowItem.setText(POPUP_SHOW_ALL_DLOGS); + allDlogShowItem.addListener(new DAPopupMenuListener() { + @Override + public void widgetSelected(DAPopupMenuItem menuItem) { + isFilter = false; + table.update(); + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + BaseView baseView = (BaseView) WorkbenchUtil.getViewPart(BaseView.ID); + baseView.getTopComposite().updateView(); + } + }); + } + }); } public boolean initDlogListeners(){ @@ -135,93 +232,6 @@ public class DlogTable extends DATableComposite { @Override public void mouseUp(final MouseEvent MouseEvent) { // TODO Auto-generated method stub - - // START : Mouse Right Click on table cell - if(MouseEvent.button == 3){ - - Shell shell = table.getParent().getShell(); - Menu dropmenu = new Menu(shell, SWT.POP_UP); - shell.setMenu(dropmenu); - MenuItem item0 = new MenuItem(dropmenu, SWT.NONE); - MenuItem item1 = new MenuItem(dropmenu, SWT.NONE); - MenuItem item2 = new MenuItem(dropmenu, SWT.NONE); - - item0.setText("Filter by Selected Tag"); - item1.setText("Filter by Selected Level"); - item2.setText("All DLogs show"); - - item0.addSelectionListener(new SelectionListener() { - - @Override - public void widgetSelected(SelectionEvent e) { - // TODO Auto-generated method stub - - GridItem[] ti = ((Grid) MouseEvent.widget).getSelection(); - if (null == ti || ti.length == 0) { - return; - } - String startData = ((DATableDataFormat) ti[0].getData()).getData().get(4).toString(); - filteringDlog(startData); - - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - - } - }); - - item1.addSelectionListener(new SelectionListener() { - - @Override - public void widgetSelected(SelectionEvent e) { - // TODO Auto-generated method stub - - GridItem[] ti = ((Grid) MouseEvent.widget).getSelection(); - if (null == ti || ti.length == 0) { - return; - } - String startData = ((DATableDataFormat) ti[0].getData()).getData().get(1).toString(); - filteringDlog(startData); - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - - } - }); - - item2.addSelectionListener(new SelectionListener() { - - @Override - public void widgetSelected(SelectionEvent e) { - // TODO Auto-generated method stub - isFilter = false; - table.update(); - Display.getDefault().syncExec(new Runnable() { - @Override - public void run() { - BaseView baseView = (BaseView) WorkbenchUtil.getViewPart(BaseView.ID); - baseView.getTopComposite().updateView(); - } - }); - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - // TODO Auto-generated method stub - - } - }); - int X = MouseEvent.x; - int Y = MouseEvent.y; - Point gridPoint = ((Grid) MouseEvent.widget).toDisplay(X, Y); - dropmenu.setLocation( gridPoint.x, gridPoint.y); - dropmenu.setVisible(true); - } - // END : Mouse Right Click on table cell } @Override @@ -319,13 +329,13 @@ public class DlogTable extends DATableComposite { return output; } - private void filteringDlog(String input){ + private void filterTable(String input, int categoryIndex) { filteredDlog.clear(); if(tableClone != null){ for(TableInput table : tableClone){ - if(table.getText().get(4).contains(input)){ + if(table.getText().get(categoryIndex).equals(input)){ filteredDlog.add(table); isFilter = true; } @@ -341,7 +351,6 @@ public class DlogTable extends DATableComposite { }); } - private void DlogTimeMarker(long markerTime){ double startMarkerTime = markerTime diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/Toolbar.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/Toolbar.java index bfb857d..4ef405c 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/Toolbar.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/Toolbar.java @@ -1393,7 +1393,7 @@ public enum Toolbar { Display.getDefault().syncExec(new Runnable() { @Override public void run() { - timerClock.setTime(time); + timerClock.setTime(time / 1000); } }); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FlatFeatureDialogFeatureListPage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FlatFeatureDialogFeatureListPage.java index ca0c34a..0d79610 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FlatFeatureDialogFeatureListPage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FlatFeatureDialogFeatureListPage.java @@ -3,7 +3,7 @@ * * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. * - * Contact: + * Contact: * Heeyoung Hwang * Juyoung Kim * @@ -18,10 +18,10 @@ * 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.ui.toolbar.setting; @@ -58,7 +58,7 @@ import org.tizen.dynamicanalyzer.widgets.button.toggle.DACustomFeatureToggleButt import org.tizen.dynamicanalyzer.widgets.da.view.DAPageComposite; import org.tizen.dynamicanalyzer.widgets.tooltip.DACustomTooltip; -public class FlatFeatureDialogFeatureListPage extends DAPageComposite { +public class FlatFeatureDialogFeatureListPage extends DAPageComposite { // feature list widget private FlatFeatureDialog featureDialog = null; @@ -73,12 +73,12 @@ public class FlatFeatureDialogFeatureListPage extends DAPageComposite { private DACustomTooltip tooltip = null; private DACustomMultiToggleButtonGroup featuretoggleGroup = null; private Cursor daCursor = null; - + private int FEATURELIST_TITLE_FONT_SIZE = 0; private int FEATURELIST_ICON_SIZE = 0; private int FEATURELIST_TOOLTIP_SIZE = 0; private int FEATURELIST_TOOLTIP_BOX_WIDTH = 0; - + private int FEATURELIST_COMP_WIDTH = 0; private int FEATURELIST_COMP_MARGIN = 0; private int FEATURELIST_COMP_ITEM_LEFT_MARGIN = 0; @@ -100,7 +100,7 @@ public class FlatFeatureDialogFeatureListPage extends DAPageComposite { // Composite featureListComp = parent; featureDialog = parentObject; - + // TODO: Add handling at MAC FEATURELIST_TITLE_FONT_SIZE = 10 + 6; FEATURELIST_ICON_SIZE = 70; @@ -122,7 +122,7 @@ public class FlatFeatureDialogFeatureListPage extends DAPageComposite { createFeatureListComposite(); } - + private void initFeatureListWidget() { if (null != featureListLabel) { featureListLabel.dispose(); @@ -138,7 +138,7 @@ public class FlatFeatureDialogFeatureListPage extends DAPageComposite { featureListDescLabel.dispose(); featureListDescLabel = null; } - + if (null != featureListPageLabel) { featureListPageLabel.dispose(); featureListPageLabel = null; @@ -153,7 +153,7 @@ public class FlatFeatureDialogFeatureListPage extends DAPageComposite { featureListInputComp.dispose(); featureListInputComp = null; } - + if (null != itemComp) { itemComp.dispose(); itemComp = null; @@ -164,7 +164,7 @@ public class FlatFeatureDialogFeatureListPage extends DAPageComposite { daCursor = null; } } - + private DACustomFeatureToggleButton createToggleButton(Composite composit, Image normalImage, Image hoverImage, Image pushImage, Image disableImage, Point imagePoint, String title, Point fontPoint, @@ -198,8 +198,8 @@ public class FlatFeatureDialogFeatureListPage extends DAPageComposite { toggle.setLayoutData(data); return toggle; - } - + } + public void featureToggleUnselect(String featurName) { if(featuretoggleGroup != null) { featuretoggleGroup.setSelection(featurName, false); @@ -207,7 +207,7 @@ public class FlatFeatureDialogFeatureListPage extends DAPageComposite { featuretoggleGroup.getButton(featurName).getTooltipButton().setBackground(ColorResources.FEATURE_FEATURELISTCOMP_NORMAL_BACKGROUND); } } - + private Listener toggleDownListener = new Listener() { @Override public void handleEvent(Event event) { @@ -260,12 +260,12 @@ public class FlatFeatureDialogFeatureListPage extends DAPageComposite { public void createFeatureListComposite() { initFeatureListWidget(); - + // label featureListLabel = new Label(featureListComp, SWT.TRANSPARENT); FormData data = new FormData(); - data.top = new FormAttachment(0, FEATURELIST_TITLE_MARGIN); - data.left = new FormAttachment(0, FEATURELIST_COMP_ITEM_LEFT_MARGIN); + data.top = new FormAttachment(0, FEATURELIST_TITLE_MARGIN); + data.left = new FormAttachment(0, FEATURELIST_COMP_ITEM_LEFT_MARGIN); data.width = FEATURELIST_COMP_WIDTH - FEATURELIST_COMP_ITEM_LEFT_MARGIN; data.height = FEATURELIST_TITLE_HEIGHT - FEATURELIST_TITLE_MARGIN - FEATURELIST_TITLE_FONT_SIZE + 6; featureListLabel.setLayoutData(data); @@ -320,29 +320,28 @@ public class FlatFeatureDialogFeatureListPage extends DAPageComposite { // Tooltip object is made once. // Event(hover, exit) occured, It'll be visible, not visible. // hover event transfer event coordinate to tooltip - tooltip = new DACustomTooltip() { - @Override - public void setTooltipMessage() { - // TODO Auto-generated method stub - } + if (tooltip == null) { + tooltip = new DACustomTooltip() { + @Override + public void setTooltipMessage() { + // TODO Auto-generated method stub + } - @Override - public void setTooltipMessage(String name) { - // TODO Auto-generated method stub - tooltipMessage.clear(); - tooltipMessage.add(name); - } - }; - tooltip.open(featureListInputComp.getShell()); + @Override + public void setTooltipMessage(String name) { + // TODO Auto-generated method stub + tooltipMessage.clear(); + tooltipMessage.add(name); + } + }; + } // listing available feature list TargetData target = SettingDataManager.INSTANCE.getTarget(null); List featurel = target.getAvailableFeatureList(); List featureList = target.getAvailableFlatFeatureList(); - Logger.debug("Available Feature list: " + featurel); - Logger.debug("Available FlatFeature list: " + featureList); target.getSelectedFlatFeatureList(); - + featuretoggleGroup = new DACustomMultiToggleButtonGroup(); Point imagePoint = new Point(22, 24); @@ -380,10 +379,10 @@ public class FlatFeatureDialogFeatureListPage extends DAPageComposite { DACustomButton tempButton = (DACustomButton)event.widget; Point p = tempButton.toDisplay(tempButton.getLocation()); - tooltip.openAndMove(featureListInputComp.getShell()); + tooltip.open(featureListInputComp.getShell()); tooltip.setTooltipMessage((String)tempButton.getData("tooltipmsg")); // TODO: Need to adjust tooltip location as architecture - tooltip.setTooltipLocation(p, -50, -685); + tooltip.setTooltipLocation(p, -50, -620); } }); infoButton.addListener(SWT.MouseExit, new Listener() { @@ -439,5 +438,3 @@ public class FlatFeatureDialogFeatureListPage extends DAPageComposite { } } } - - diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FlatFeatureDialogSelectedFeaturePage.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FlatFeatureDialogSelectedFeaturePage.java index 7bf4a3b..efc0ade 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FlatFeatureDialogSelectedFeaturePage.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/FlatFeatureDialogSelectedFeaturePage.java @@ -3,7 +3,7 @@ * * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. * - * Contact: + * Contact: * Heeyoung Hwang * Juyoung Kim * @@ -18,10 +18,10 @@ * 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.ui.toolbar.setting; @@ -54,7 +54,7 @@ import org.tizen.dynamicanalyzer.widgets.button.toggle.DACustomFeatureToggleButt import org.tizen.dynamicanalyzer.widgets.button.toggle.DACustomToggleButton; import org.tizen.dynamicanalyzer.widgets.da.view.DAPageComposite; -public class FlatFeatureDialogSelectedFeaturePage extends DAPageComposite { +public class FlatFeatureDialogSelectedFeaturePage extends DAPageComposite { // selectedFeature widget private FlatFeatureDialog featureDialog = null; private Composite selectedComp = null; @@ -66,10 +66,10 @@ public class FlatFeatureDialogSelectedFeaturePage extends DAPageComposite { private Label noItemLabel = null; private DACustomToggleButton delToggle = null; private Cursor daCursor = null; - + private int TITLE_FONT_SIZE = 0; private int ICON_SIZE = 0; - + private int WIDTH = 0; private int HEIGHT = 0; private int LINE = 0; @@ -98,7 +98,7 @@ public class FlatFeatureDialogSelectedFeaturePage extends DAPageComposite { // Composite selectedComp = parent; featureDialog = parentObject; - + // TODO: Add handling at MAC TITLE_FONT_SIZE = 10 + 6; ICON_SIZE = 40; @@ -122,7 +122,7 @@ public class FlatFeatureDialogSelectedFeaturePage extends DAPageComposite { CANCEL_RIGHT = -30; NOITEM_UPPER_MARGIN = (BODY_HEIGHT-TITLE_FONT_SIZE)/2; NOITEM_LEFT_MARGIN = 15; // TODO: Replace '15' with string length - + createSelectedFeatureComposite(); } @@ -191,11 +191,11 @@ public class FlatFeatureDialogSelectedFeaturePage extends DAPageComposite { return toggle; } - + public DACustomToggleButton getDelToggle() { return delToggle; } - + private Listener cursorListener = new Listener() { public void handleEvent(Event event) { if (event.type == SWT.MouseEnter || event.type == SWT.MouseExit) { @@ -289,13 +289,12 @@ public class FlatFeatureDialogSelectedFeaturePage extends DAPageComposite { // listing selected feature list TargetData target = SettingDataManager.INSTANCE.getTarget(null); List featureList = target.getSelectedFlatFeatureList(); - Logger.debug(featureList); if (featureList.size() > 0) featureDialog.getOKButton().setEnabled(true); else { featureDialog.getOKButton().setEnabled(false); - + // label : No Item Selected noItemLabel = new Label(selectedInputComp, SWT.TRANSPARENT); data = new FormData(); @@ -325,7 +324,7 @@ public class FlatFeatureDialogSelectedFeaturePage extends DAPageComposite { data.height = ICON_SIZE; selectedIcon.setLayoutData(data); selectedIcon.setBackground(ColorResources.FEATURE_FEATURELISTCOMP_NORMAL_BACKGROUND); - + // label : featureListName selectedNameLabel = new Label(selectedInputComp, SWT.TRANSPARENT); data = new FormData(); @@ -353,7 +352,7 @@ public class FlatFeatureDialogSelectedFeaturePage extends DAPageComposite { topPosition += (ICON_SIZE + ITEM_DIST); } - + selectedComp.layout(true); selectedInputComp.layout(); selecetedScrolledComp.setMinSize(selectedInputComp.computeSize(SWT.DEFAULT, SWT.DEFAULT)); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/PreferencesDialog.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/PreferencesDialog.java index 10a6d84..ab7e9ed 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/PreferencesDialog.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/setting/PreferencesDialog.java @@ -79,9 +79,6 @@ public class PreferencesDialog extends DAMessageBox { private DACustomToggleButton sourceviewtoggle = null; - private DACustomToggleButton recordingtoggle = null; - private DACustomToggleButton autostoptoggle = null; - private DACustomToggleButton periodicallytoggle = null; private DACustomCombo systemRateCombo = null; @@ -184,7 +181,6 @@ public class PreferencesDialog extends DAMessageBox { marginview_one.setLayout(new FillLayout()); int generalviewHeight = (LABLE_HEIGTH) * 3 + (LABLE_INTERVAL) * 2; - int recordingviewHeight = (LABLE_HEIGTH) * 2 + (LABLE_INTERVAL); int screenshotviewHeight = (LABLE_HEIGTH) + 9; // add "General" button @@ -241,57 +237,9 @@ public class PreferencesDialog extends DAMessageBox { functionRateCombo = makeDACustomCombo(generalvalues, "ms"); Composite marginview_two = new Composite(baseCom, SWT.NONE); - marginview_two.setLayoutData(new RowData(SWT.DEFAULT, LABLE_INTERVAL)); + marginview_two.setLayoutData(new RowData(SWT.DEFAULT, (int)(LABLE_INTERVAL*1.5))); marginview_two.setLayout(new FillLayout()); - // add "Recording" button - DACustomButton recordingExtend = createFoldingButton(baseCom, PreferencesDialogLabels.RECORDING); - - // "Recording" view - final Composite recordinglview = new Composite(baseCom, SWT.NONE); - final RowData recordingviewdata = new RowData(SWT.DEFAULT, recordingviewHeight); - recordinglview.setLayoutData(recordingviewdata); - recordinglview.setBackground(ColorResources.DIALOG_CONTENT_BACKGROUND); - recordinglview.setLayout(new FormLayout()); - - Composite recordinglabel = new Composite(recordinglview, SWT.NONE); - form = new FormData(); - form.top = new FormAttachment(0, 0); - form.left = new FormAttachment(0, LABLE_LEFT_MARGIN); - form.bottom = new FormAttachment(100, 0); - form.width = 180; - recordinglabel.setLayoutData(form); - recordinglabel.setLayout(layout); - recordinglabel.setBackground(ColorResources.DIALOG_CONTENT_BACKGROUND); - - createLabel(recordinglabel, PreferencesDialogLabels.RECORDING); - createLabel(recordinglabel, PreferencesDialogLabels.AUTOSTOP_WHILE_REPLAYING); - - Composite recordingvalues = new Composite(recordinglview, SWT.NONE); - form = new FormData(); - form.top = new FormAttachment(0, 0); - form.left = new FormAttachment(recordinglabel, 70); - form.right = new FormAttachment(100, 0); - form.bottom = new FormAttachment(100, 0); - recordingvalues.setLayoutData(form); - recordingvalues.setLayout(layout); - recordingvalues.setBackground(ColorResources.DIALOG_CONTENT_BACKGROUND); - - recordingtoggle = createToggleButton(recordingvalues); - recordingtoggle.addClickListener(new DACustomButtonClickEventListener() { - - @Override - public void handleClickEvent(DACustomButton button) { - autostoptoggle.setEnabled(recordingtoggle.isToggled()); - } - }); - - autostoptoggle = createToggleButton(recordingvalues); - - Composite marginview_three = new Composite(baseCom, SWT.NONE); - marginview_three.setLayoutData(new RowData(SWT.DEFAULT, LABLE_INTERVAL)); - marginview_three.setLayout(new FillLayout()); - // add "Screenshot" button DACustomButton screenshotExtend = createFoldingButton(baseCom, PreferencesDialogLabels.SCREENSHOT); @@ -355,19 +303,6 @@ public class PreferencesDialog extends DAMessageBox { } }); - recordingExtend.addClickListener(new DACustomButtonClickEventListener() { - @Override - public void handleClickEvent(DACustomButton button) { - recordingviewdata.exclude = !recordingviewdata.exclude; - recordinglview.setVisible(!recordingviewdata.exclude); - - recordinglview.getParent().pack(true); - - scrolledComp.setContent(baseCom); - scrolledComp.setMinSize(baseCom.computeSize(SWT.DEFAULT, SWT.DEFAULT)); - } - }); - screenshotExtend.addClickListener(new DACustomButtonClickEventListener() { @Override public void handleClickEvent(DACustomButton button) { @@ -475,7 +410,6 @@ public class PreferencesDialog extends DAMessageBox { private void setSelectedOptions() { int value = SettingDataManager.INSTANCE.getOptionsPreferencesValue(FlatPreferences.SOURCE_VIEW); - if (value == 1) { sourceviewtoggle.setToggled(true); MenuBar.getInstance().setSourceView(true); @@ -490,24 +424,7 @@ public class PreferencesDialog extends DAMessageBox { value = SettingDataManager.INSTANCE.getOptionsPreferencesValue(FlatPreferences.FUNCTION_SAMPLING_RATE); functionRateCombo.setText(String.valueOf(value)); - value = SettingDataManager.INSTANCE.getOptionsPreferencesValue(FlatPreferences.RECORDING); - - if (value == 1) { - recordingtoggle.setToggled(true); - } else { - recordingtoggle.setToggled(false); - } - - value = SettingDataManager.INSTANCE.getOptionsPreferencesValue(FlatPreferences.AUTO_STOP); - - if (value == 1) { - autostoptoggle.setToggled(true); - } else { - autostoptoggle.setToggled(false); - } - value = SettingDataManager.INSTANCE.getOptionsPreferencesValue(FlatPreferences.SCREENSHOT_PERIODICALLY); - if (value != 0) { periodicallytoggle.setToggled(true); screenshotRateCombo.setEnabled(true); @@ -520,7 +437,6 @@ public class PreferencesDialog extends DAMessageBox { private void setToDefault() { int value = FlatPreferences.SOURCE_VIEW.getDefaultValue(); - if (value == 1) { sourceviewtoggle.setToggled(true); } else { @@ -528,35 +444,12 @@ public class PreferencesDialog extends DAMessageBox { } value = FlatPreferences.SYSTEM_SAMPLING_RATE.getDefaultValue(); - systemRateCombo.setText(String.valueOf(value)); - + value = FlatPreferences.FUNCTION_SAMPLING_RATE.getDefaultValue(); - functionRateCombo.setText(String.valueOf(value)); - value = FlatPreferences.RECORDING.getDefaultValue(); - - if (value == 1) { - recordingtoggle.setToggled(true); - - value = FlatPreferences.AUTO_STOP.getDefaultValue(); - - if (value == 1) { - autostoptoggle.setToggled(true); - } else { - autostoptoggle.setToggled(false); - } - - autostoptoggle.setEnabled(true); - } else { - recordingtoggle.setToggled(false); - autostoptoggle.setToggled(false); - autostoptoggle.setEnabled(false); - } - value = FlatPreferences.SCREENSHOT_PERIODICALLY.getDefaultValue(); - if (value != 0) { periodicallytoggle.setToggled(true); screenshotRateCombo.setEnabled(true); @@ -650,17 +543,6 @@ public class PreferencesDialog extends DAMessageBox { return; } - if (recordingtoggle.isToggled()) { - SettingDataManager.INSTANCE.addOptionsSelectedPreference(FlatPreferences.RECORDING, 1); - } else { - SettingDataManager.INSTANCE.addOptionsSelectedPreference(FlatPreferences.RECORDING, 0); - } - - if (autostoptoggle.isToggled()) { - SettingDataManager.INSTANCE.addOptionsSelectedPreference(FlatPreferences.AUTO_STOP, 1); - } else { - SettingDataManager.INSTANCE.addOptionsSelectedPreference(FlatPreferences.AUTO_STOP, 0); - } if (periodicallytoggle.isToggled()) { int rate = 1; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DAApiListTableComposite.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DAApiListTableComposite.java index c7240f2..3c51508 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DAApiListTableComposite.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DAApiListTableComposite.java @@ -41,7 +41,6 @@ public class DAApiListTableComposite extends DATableComposite { public DAApiListTableComposite(Composite parent, int compStyle, int tableStyle) { super(parent, compStyle, tableStyle); - setContextMenu(AnalyzerConstants.CONTEXT_TABLE_RANGE); setComparator(new DefaultTableComparator()); comparator.setType(AnalyzerConstants.SORT_TYPE_NUM); diff --git a/package/build.linux b/package/build.linux index 0c6c08a..3c98cc1 100644 --- a/package/build.linux +++ b/package/build.linux @@ -117,23 +117,18 @@ __prepare_eclipse() { case ${platform} in ubuntu-32) ide_package_name="eclipse-pde_3.0.8_ubuntu-32" - ce_package_name="common-eplugin-rcp_2.3.100_ubuntu-32" ;; windows-32) ide_package_name="eclipse-pde_3.0.8_windows-32" - ce_package_name="common-eplugin-rcp_2.3.100_windows-32" ;; ubuntu-64) ide_package_name="eclipse-pde_3.0.2_ubuntu-64" - ce_package_name="common-eplugin-rcp_2.3.100_ubuntu-64" ;; windows-64) ide_package_name="eclipse-pde_3.0.8_windows-64" - ce_package_name="common-eplugin-rcp_2.3.100_windows-64" ;; macos-64) ide_package_name="eclipse-pde_3.0.8_macos-64" - ce_package_name="common-eplugin-rcp_2.3.100_macos-64" ;; *) echo "${platform} is not support yet." @@ -156,30 +151,20 @@ __prepare_eclipse() { unzip -o "${ide_package_name}.zip" -d "${ROOTDIR}/${ide_package_name}" > /dev/null fi - # Download and Unzip common-eplugin-rcp package - if [ ! -d ${ROOTDIR}/${ce_package_name} ]; then - echo "Download common-eplugin-rcp" - - wget -nc -q "$repo_url/${ce_package_name}.zip" - unzip -o "${ce_package_name}.zip" -d "${ROOTDIR}/${ce_package_name}" > /dev/null - fi - # Change direcotry to source cd ${SRCDIR} reference_ide_path=${ROOTDIR}/${ide_package_name}/data/eclipse-pde/eclipse - reference_ce_path=${ROOTDIR}/${ce_package_name}/data/ide if [ "${platform}" = "macos-64" ]; then reference_ide_path=${ROOTDIR}/${ide_package_name}/data/eclipse-pde/Eclipse.app/Contents/Eclipse - reference_ce_path=${ROOTDIR}/${ce_package_name}/data/IDE.app/Contents/Eclipse fi } __compose_da_dependencies() { echo "Compose dependencies repository..." - /bin/bash -x "${SRCDIR}/prepare_dependencies.sh" "${reference_ide_path}" "${reference_ce_path}" + /bin/bash -x "${SRCDIR}/prepare_dependencies.sh" "${reference_ide_path}" "${ROOTDIR}/ide" } __execute_pde_build() diff --git a/package/pkginfo.manifest b/package/pkginfo.manifest index 082a02b..294f22b 100644 --- a/package/pkginfo.manifest +++ b/package/pkginfo.manifest @@ -6,6 +6,7 @@ Package:dynamic-analyzer-product Label:Dynamic Analyzer OS:ubuntu-32 Build-host-os:ubuntu-32 +Build-dependency: common-eplugin-rcp [ubuntu-32] Description:The host of the Dynamic Analyzer C-Prerequisites:rpm2cpio,cpio @@ -13,12 +14,14 @@ Package:dynamic-analyzer-product Label:Dynamic Analyzer OS:windows-32 Build-host-os:ubuntu-32 +Build-dependency: common-eplugin-rcp [windows-32] Description:The host of the Dynamic Analyzer Package:dynamic-analyzer-product Label:Dynamic Analyzer OS:ubuntu-64 Build-host-os:ubuntu-64 +Build-dependency: common-eplugin-rcp [ubuntu-64] Description:The host of the Dynamic Analyzer C-Prerequisites:rpm2cpio,cpio @@ -26,10 +29,12 @@ Package:dynamic-analyzer-product Label:Dynamic Analyzer OS:windows-64 Build-host-os:ubuntu-64 +Build-dependency: common-eplugin-rcp [windows-64] Description:The host of the Dynamic Analyzer Package:dynamic-analyzer-product Label:Dynamic Analyzer OS:macos-64 Build-host-os:ubuntu-64 +Build-dependency: common-eplugin-rcp [macos-64] Description:The host of the Dynamic Analyzer -- 2.7.4