public static final Image FILTER_DIALOG_DELETE_FILTER_HOVER = getPngImage("btn_delete_filter_hover"); //$NON-NLS-1$
public static final Image FILTER_DIALOG_DELETE_FILTER_PUSH = getPngImage("btn_delete_filter_push"); //$NON-NLS-1$
-
-
+ /** tooltip **/
+ public static final Image TOOLTIP_INFO_FEATURELIST_NORMAL = getPngImage("tooltip_icon-nor");
+ public static final Image TOOLTIP_INFO_FEATURELIST_HOVER = getPngImage("tooltip_icon-hov");
+
+ /** etc **/
+ public static final Image DELETE = getPngImage("delete");
+
+
+ /** new timeline **/
+ public static final Image APP_NOR = getPngImage("app_nor");
+ public static final Image APP_OVER = getPngImage("app_over");
+ public static final Image APP_SEL = getPngImage("app_sel");
+ public static final Image BOX_TIME_NOW = getPngImage("box_time_now");
+ public static final Image BTN_IC_CONNECT_ICON = getPngImage("btn_ic_connect_icon");
+ public static final Image CAPTURE_POINT = getPngImage("capture_point");
+ public static final Image DA_INFO_ICON_DIM = getPngImage("da_info_icon_dim");
+ public static final Image DA_INFO_ICON_NOR = getPngImage("da_info_icon_nor");
+ public static final Image DA_INFO_ICON_OVER = getPngImage("da_info_icon_over");
+ public static final Image DA_INFO_ICON_SEL = getPngImage("da_info_icon_sel");
+ public static final Image DA_PREFERENCES_ICON_DIM = getPngImage("da_preferences_icon_dim");
+ public static final Image DA_PREFERENCES_ICON_NOR = getPngImage("da_preferences_icon_nor");
+ public static final Image DA_PREFERENCES_ICON_OVER = getPngImage("da_preferences_icon_over");
+ public static final Image DA_PREFERENCES_ICON_SEL = getPngImage("da_preferences_icon_sel");
+ public static final Image DA_SCREENSHOT_ICON_DIM = getPngImage("da_screenshot_icon_dim");
+ public static final Image DA_SCREENSHOT_ICON_FOC = getPngImage("da_screenshot_icon_foc");
+ public static final Image DA_SCREENSHOT_ICON_NOR = getPngImage("da_screenshot_icon_nor");
+ public static final Image DA_SCREENSHOT_ICON_OVER = getPngImage("da_screenshot_icon_over");
+ public static final Image DROP_ARROW_DOWN_EDIT = getPngImage("drop_arrow_down_edit");
+ public static final Image DROP_ARROW_DOWN_NOR = getPngImage("drop_arrow_down_nor");
+ public static final Image DROP_ARROW_UP_NORL = getPngImage("drop_arrow_up_norl");
+ public static final Image DROP_ARROW_UP_SEL = getPngImage("drop_arrow_up_sel");
+ public static final Image DVICE_MOBILE_NOR = getPngImage("dvice_mobile_nor");
+ public static final Image DVICE_MOBILE_OVER = getPngImage("dvice_mobile_over");
+ public static final Image DVICE_MOBILE_SEL = getPngImage("dvice_mobile_sel");
+ public static final Image DVICE_TV_NOR = getPngImage("dvice_tv_nor");
+ public static final Image DVICE_TV_OVER = getPngImage("dvice_tv_over");
+ public static final Image DVICE_TV_SEL = getPngImage("dvice_tv_sel");
+ public static final Image DVICE_WEARABLE_NOR = getPngImage("dvice_wearable_nor");
+ public static final Image DVICE_WEARABLE_OVER = getPngImage("dvice_wearable_over");
+ public static final Image DVICE_WEARABLE_SEL = getPngImage("dvice_wearable_sel");
+ public static final Image EMULATOR_TITLE_BG_02 = getPngImage("emulator_title_bg_02");
+ public static final Image END_MARKER = getPngImage("end_marker");
+ public static final Image IC_ZOOM = getPngImage("ic_zoom");
+ public static final Image IC_ZOOM_OUT = getPngImage("ic_zoom_out");
+ public static final Image MARKER = getPngImage("marker");
+ public static final Image P_ARROW_B = getPngImage("p_arrow_b");
+ public static final Image P_ARROW_R = getPngImage("p_arrow_r");
+ public static final Image START_MARKER = getPngImage("start_marker");
+ public static final Image TIP_BOX_ARROW = getPngImage("tip_box_arrow");
+ public static final Image TOGGLE_OFF = getPngImage("toggle_off");
+ public static final Image TOGGLE_ON = getPngImage("toggle_on");
+ public static final Image TOOLTIP_ICON_FOC = getPngImage("tooltip_icon_foc");
+ public static final Image TOOLTIP_ICON_NOR = getPngImage("tooltip_icon_nor");
+ public static final Image ZOOM_IN_ICON = getPngImage("zoom_in_icon");
+ public static final Image ZOOM_IN_ICON_MV = getPngImage("zoom_in_icon_mv");
+ public static final Image ZOOM_OUT_ICON = getPngImage("zoom_out_icon");
+ public static final Image ZOOM_OUT_ICON_MV = getPngImage("zoom_out_icon_mv");
+
private static Image getImage(String pluginId, String folderName,
String imageName, String extension) {
if (null == imageRegistry.get(imageName)
Available Target List|mobile|wearable
Selected Target|mobile
Options Selected Feature List|5002:0
- Selected Preferences|2001|2002:100|2004
++Selected Preferences|2001
Default Feature List|2|3|103
Total Overhead Range|1000000|3000000|7000000|15000000
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|4|5|6|7|8|9|102|200|201|202|203|204|206
+ 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|Available Chart List|CPU|CPU core|CPU frequency|Heap allocation|Process Size|Memory|Screenshot|UI event|Disk IO|Network IO|Device|Energy
+ mobile|Available Chart List|CPU|CPU core|CPU frequency|Memory|Process Size|Heap allocation|Screenshot|UI event|Disk IO|Network IO|Device|Energy
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|102|200|201|202|203|204|206
+ 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|Available Chart List|CPU|CPU core|CPU frequency|Heap allocation|Process Size|Memory|Screenshot|UI event|Disk IO|Network IO|Device|Energy
+ wearable|Available Chart List|CPU|CPU core|CPU frequency|Memory|Process Size|Heap allocation|Screenshot|UI event|Disk IO|Network IO|Device|Energy
tv|Protocol Version|3.0
- tv|Available Template List|1|3|9|10
+ 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|8|9|100|101|1001|204
+ 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|UI event|Disk IO|Network IO|Device|Energy
+ tv|Available Chart List|CPU|CPU core|CPU frequency|Heap allocation|Process Size|Memory|Screenshot|Disk IO|Network IO
- <?xml version="1.0" encoding="UTF-8"?>\r
- <?pde version="3.5"?>\r
- \r
- <product name="%DynamicAnalyzer" uid="org.tizen.dynamicanalyzer.workbench.product" id="org.tizen.dynamicanalyzer.workbench.product" application="org.tizen.dynamicanalyzer.workbench.application" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="false">\r
- \r
- <aboutInfo>\r
- <image path="/org.tizen.dynamicanalyzer.workbench/icons/about_tizen_sdk.png"/>\r
- <text>\r
- %AboutDescription\r
- </text>\r
- </aboutInfo>\r
- \r
- <configIni use="default">\r
- </configIni>\r
- \r
- <launcherArgs>\r
- <programArgs>-data -clearPersistedState @noDefault\r
- </programArgs>\r
- <vmArgs>-XX:MaxPermSize=64m\r
- -Xms256m\r
- -Xmx512m\r
- -XX:+UseParNewGC\r
- -XX:+UseConcMarkSweepGC\r
- </vmArgs>\r
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts\r
- </vmArgsMac>\r
- </launcherArgs>\r
- \r
- <windowImages i16="/org.tizen.dynamicanalyzer.workbench/icons/16_DA_icon.png" i32="/org.tizen.dynamicanalyzer.workbench/icons/32_DA_icon.png" i48="/org.tizen.dynamicanalyzer.workbench/icons/48_DA_icon.png" i64="/org.tizen.dynamicanalyzer.workbench/icons/64_DA_icon.png" i128="/org.tizen.dynamicanalyzer.workbench/icons/128_DA_icon.png"/>\r
- \r
- <launcher name="dynamic-analyzer">\r
- <macosx icon="/org.tizen.dynamicanalyzer.workbench/icons/DA_icon.icns"/>\r
- <solaris/>\r
- <win useIco="true">\r
- <ico path="/org.tizen.dynamicanalyzer.workbench.feature/rootfiles/resources/icons/tizen-sdk-dynamicanalyzer.ico"/>\r
- <bmp/>\r
- </win>\r
- </launcher>\r
- \r
- <vm>\r
- <windows include="true">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7</windows>\r
- </vm>\r
- \r
- <plugins>\r
- </plugins>\r
- \r
- <features>\r
- <feature id="org.eclipse.rcp"/>\r
- <feature id="org.tizen.dynamicanalyzer.workbench.feature"/>\r
- <feature id="org.eclipse.emf.ecore"/>\r
- <feature id="org.eclipse.emf.common"/>\r
- <feature id="org.eclipse.e4.rcp"/>\r
- </features>\r
- \r
- <configurations>\r
- <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="0" />\r
- <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />\r
- <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />\r
- <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />\r
- <plugin id="org.eclipse.equinox.p2.reconciler.dropins" autoStart="true" startLevel="0" />\r
- <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />\r
- <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />\r
- </configurations>\r
- \r
- <preferencesInfo>\r
- <targetfile overwrite="false"/>\r
- </preferencesInfo>\r
- \r
- <cssInfo>\r
- </cssInfo>\r
- \r
- </product>\r
+ <?xml version="1.0" encoding="UTF-8"?>
+ <?pde version="3.5"?>
+
+ <product name="%DynamicAnalyzer" uid="org.tizen.dynamicanalyzer.workbench.product" id="org.tizen.dynamicanalyzer.workbench.product" application="org.tizen.dynamicanalyzer.workbench.application" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="false">
+
+ <aboutInfo>
+ <image path="/org.tizen.dynamicanalyzer.workbench/icons/about_tizen_sdk.png"/>
+ <text>
+ %AboutDescription
+ </text>
+ </aboutInfo>
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
- <programArgs>-data @noDefault</programArgs>
++ <programArgs>-data -clearPersistedState @noDefault
++ </programArgs>
+ <vmArgs>-XX:MaxPermSize=64m
+ -Xms256m
+ -Xmx512m
+ -XX:+UseParNewGC
--XX:+UseConcMarkSweepGC</vmArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
++-XX:+UseConcMarkSweepGC
++ </vmArgs>
++ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
++ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages i16="/org.tizen.dynamicanalyzer.workbench/icons/16_DA_icon.png" i32="/org.tizen.dynamicanalyzer.workbench/icons/32_DA_icon.png" i48="/org.tizen.dynamicanalyzer.workbench/icons/48_DA_icon.png" i64="/org.tizen.dynamicanalyzer.workbench/icons/64_DA_icon.png" i128="/org.tizen.dynamicanalyzer.workbench/icons/128_DA_icon.png"/>
+
+ <launcher name="dynamic-analyzer">
- <linux icon="/org.tizen.dynamicanalyzer.workbench/icons/linux_icon.xpm"/>
+ <macosx icon="/org.tizen.dynamicanalyzer.workbench/icons/DA_icon.icns"/>
+ <solaris/>
+ <win useIco="true">
+ <ico path="/org.tizen.dynamicanalyzer.workbench.feature/rootfiles/resources/icons/tizen-sdk-dynamicanalyzer.ico"/>
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ <windows include="true">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7</windows>
+ </vm>
+
+ <plugins>
+ </plugins>
+
+ <features>
+ <feature id="org.eclipse.rcp"/>
+ <feature id="org.tizen.dynamicanalyzer.workbench.feature"/>
++ <feature id="org.eclipse.emf.ecore"/>
++ <feature id="org.eclipse.emf.common"/>
++ <feature id="org.eclipse.e4.rcp"/>
+ </features>
+
+ <configurations>
+ <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
++ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
++ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
++ <plugin id="org.eclipse.equinox.p2.reconciler.dropins" autoStart="true" startLevel="0" />
++ <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
+ </configurations>
+
++ <preferencesInfo>
++ <targetfile overwrite="false"/>
++ </preferencesInfo>
++
++ <cssInfo>
++ </cssInfo>
++
+ </product>
configurer.setInitialSize(new Point(width, height));
configurer.setShowStatusLine(false);
configurer.setShellStyle(SWT.SHELL_TRIM);
+ configurer.setTitle("Dynamic Analyzer");
+ configurer.setShowCoolBar(false);
configurer.setShowFastViewBars(false);
+ if (PathManager.isPlatformSDK())
+ configurer.setTitle(WorkbenchLabels.DA_PLATFORM_WORKBENCH_TITLE);
+ else
+ configurer.setTitle(WorkbenchLabels.DA_PUBLIC_WORKBENCH_TITLE);
}
public void postWindowOpen() {
import org.tizen.dynamicanalyzer.communicator.DACommunicator;
import org.tizen.dynamicanalyzer.handlers.ReplayManager;
import org.tizen.dynamicanalyzer.handlers.UIAction;
+import org.tizen.dynamicanalyzer.nl.MenuBarLabels;
import org.tizen.dynamicanalyzer.project.Project;
+ import org.tizen.dynamicanalyzer.setting.Feature;
+ import org.tizen.dynamicanalyzer.setting.SettingDataManager;
import org.tizen.dynamicanalyzer.shortcut.ShortCutManager;
import org.tizen.dynamicanalyzer.swap.communicator.DataChannelThread;
import org.tizen.dynamicanalyzer.swap.logparser.DataManagerRegistry;
import org.tizen.dynamicanalyzer.swap.logparser.MessageParser;
import org.tizen.dynamicanalyzer.ui.info.callstack.CallStackInserter;
import org.tizen.dynamicanalyzer.ui.info.screenshot.ScreenshotTimer;
+ import org.tizen.dynamicanalyzer.ui.memory.data.HeapDataManager;
import org.tizen.dynamicanalyzer.ui.page.BaseView;
+import org.tizen.dynamicanalyzer.ui.page.MenuBar;
import org.tizen.dynamicanalyzer.ui.page.UpdateViewTimer;
+import org.tizen.dynamicanalyzer.ui.timeline.dlog.DADlogReceiver;
import org.tizen.dynamicanalyzer.ui.toolbar.Toolbar;
import org.tizen.dynamicanalyzer.util.Logger;
import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
public static String LICENSE_DIALOG_NOT_FOUND;
public static String ABOUT_DIALOG_TITLE;
- public static String ABOUT_DIALOG_BUILD_ID_TAB;
- public static String ABOUT_DIALOG_VERSION_TAB;
- public static String ABOUT_DIALOG_VISIT;
- public static String ABOUT_DIALOG_SITE_URL;
- public static String ABOUT_DIALOG_LICENSE;
- public static String ABOUT_DIALOG_REPORT;
- public static String ABOUT_DIALOG_CONTACT_US;
- public static String ABOUT_DIALOG_DEVELOPER_TIZEN;
- public static String ABOUT_DIALOG_TIZEN_COMMUNITY;
- public static String ABOUT_DIALOG_TIZEN_PERF_DESK;
- public static String ABOUT_DIALOG_DEVELOPER_TIZEN_ADDR;
- public static String ABOUT_DIALOG_TIZEN_COMMUNITY_ADDR;
- public static String ABOUT_DIALOG_TIZEN_PERF_DESK_ADDR;
++
+ public static String ABOUT_DIALOG_TIZEN;
+ public static String ABOUT_DIALOG_DA;
+ public static String ABOUT_DIALOG_SDK_VERSION;
+ public static String ABOUT_DIALOG_DA_VERSION;
+ public static String ABOUT_DIALOG_BUILD_TIME;
+ public static String ABOUT_DIALOG_TIZEN_SITE;
+ public static String ABOUT_DIALOG_TIZEN_SITE_LINK;
+ public static String ABOUT_DIALOG_RELEASE_NOTE;
+ public static String ABOUT_DIALOG_RELEASE_NOTE_LINK;
public static String CONFIGURATION_DIALOG_AUTO_RANGE;
public static String CONFIGURATION_DIALOG_INTERNAL_LEAK;
LICENSE_DIALOG_NOT_FOUND=License file not found
-ABOUT_DIALOG_TITLE=Tizen SDK
-ABOUT_DIALOG_BUILD_ID_TAB=Build id\t:
-ABOUT_DIALOG_VERSION_TAB=Version\t:
-ABOUT_DIALOG_VISIT=Visit
-ABOUT_DIALOG_SITE_URL=https://developer.tizen.org
-ABOUT_DIALOG_LICENSE=License
-ABOUT_DIALOG_REPORT=Report issue
-ABOUT_DIALOG_CONTACT_US=Contact us\t:
-ABOUT_DIALOG_DEVELOPER_TIZEN=developer.tizen.org
-ABOUT_DIALOG_TIZEN_COMMUNITY=Tizen community
-ABOUT_DIALOG_TIZEN_PERF_DESK=Tizen performance helpdesk
+ABOUT_DIALOG_TITLE=About Tizen Dynamic Analyzer
+ABOUT_DIALOG_TIZEN=Tizen
+ABOUT_DIALOG_DA=Dynamic Analyzer
+ABOUT_DIALOG_SDK_VERSION=SDK Version
+ABOUT_DIALOG_DA_VERSION=DA Version
+ABOUT_DIALOG_BUILD_TIME=Build Time
+ABOUT_DIALOG_TIZEN_SITE=Tizen Site
+ABOUT_DIALOG_TIZEN_SITE_LINK=http://www.tizen.org
+ABOUT_DIALOG_RELEASE_NOTE=Release Note
+ABOUT_DIALOG_RELEASE_NOTE_LINK=http://developer.tizen.org
+ ABOUT_DIALOG_DEVELOPER_TIZEN_ADDR=http://developer.tizen.org/forums/sdk-ide
+ ABOUT_DIALOG_TIZEN_COMMUNITY_ADDR=http://mosaic.sec.samsung.net/club/club.main.index.screen?p_club_id=30689
+ ABOUT_DIALOG_TIZEN_PERF_DESK_ADDR=http://mosaic.sec.samsung.net/club/swc_perfdesk.club
CONFIGURATION_DIALOG_AUTO_RANGE=Auto Range View Transmit
CONFIGURATION_DIALOG_INTERNAL_LEAK=Internal Leak Analysis
public static String APP_STARTUP_VIEW_END_TIME;
public static String APP_STARTUP_VIEW_ELAPSED_TIME;
-
+ public static String DLOG_VIEW_TITLE;
+ public static String APP_PROCESS_VIEW_TITLE;
+ public static String APP_PROCESS_VIEW_PROCESS_NAME;
+ public static String APP_PROCESS_VIEW_PID;
+ public static String APP_PROCESS_VIEW_CPU;
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, InformationViewLabels.class);
APP_STARTUP_VIEW_END_TIME=End Time
APP_STARTUP_VIEW_ELAPSED_TIME=Elapsed Time
-APP_PROCESS_VIEW_PID = PID
-APP_PROCESS_VIEW_CPU = CPU
+DLOG_VIEW_TITLE=Dlog
++
+ APP_PROCESS_VIEW_TITLE=Process
+ APP_PROCESS_VIEW_PROCESS_NAME=Name
++APP_PROCESS_VIEW_PID=PID
++APP_PROCESS_VIEW_CPU=CPU
import org.tizen.dynamicanalyzer.resources.ColorResources;
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.ScreenshotTabComposite;
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineTableView;
import org.tizen.dynamicanalyzer.widgets.da.view.DAPageComposite;
import org.tizen.dynamicanalyzer.widgets.da.view.DATabComposite;
public MemoryPage(Composite parent, int style) {
super(parent, style);
-
setTitle(AnalyzerLabels.COOLBAR_AREA_MEMORY);
this.setData(DAPageComposite.KEY_TOOLTIP, ShortCutManager.COOLBAR_AREA_GRAPHICS_TOOLTIP);
- this.setBackground(ColorResources.CONFIGURATION_TABLE_COVER_BACKGROUND_COLOR);
+ this.setBackground(ColorResources.WHITE);
this.setLayout(new FillLayout());
-
++
baseForm = new SashForm(this, SWT.VERTICAL);
baseForm.setLayout(new FillLayout());
baseForm.setForeground(ColorResources.TAB_SELECTED_COLOR_START);
- // ((FillLayout) getLayout()).marginHeight = 15;
- // ((FillLayout) getLayout()).marginWidth = 5;
- ((FillLayout) getLayout()).marginHeight = 15;
- ((FillLayout) getLayout()).marginWidth = 5;
--
- topForm = new SashForm(baseForm, SWT.HORIZONTAL);
- memoryChartView = new MemoryChartView(topForm, SWT.NONE);
++
+ memoryChartView = new MemoryChartView(baseForm, SWT.NONE);
addView(memoryChartView);
bottomForm = new SashForm(baseForm, SWT.HORIZONTAL);
- bottomForm.setForeground(ColorResources.TAB_SELECTED_COLOR_START);
- bottomForm.setLayout(new FillLayout());
- DATabComposite memoryLeftTabView = 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());
+
+ DATabComposite memoryTabView = new DATabComposite(bottomLeftForm, SWT.NONE, false);
+ memoryTabView.setTabWidth(130);
{
- memoryDetailsTableView = new MemoryDetailsTableView(memoryLeftTabView.getContentComposite(), SWT.NONE);
- memoryLeftTabView.addView(memoryDetailsTableView, false);
+ memoryDetailsTableView = new MemoryDetailsTableView(memoryTabView.getContentComposite(), SWT.NONE);
- addView(memoryDetailsTableView);
+ memoryTabView.addView(memoryDetailsTableView, false);
+ addView(memoryDetailsTableView);
- memoryStatisticsTableView = new MemoryStatisticsTableView(memoryLeftTabView.getContentComposite(), SWT.NONE);
- memoryLeftTabView.addView(memoryStatisticsTableView, false);
+ memoryStatisticsTableView = new MemoryStatisticsTableView(memoryTabView.getContentComposite(), SWT.NONE);
- addView(memoryStatisticsTableView);
+ memoryTabView.addView(memoryStatisticsTableView, false);
+ addView(memoryStatisticsTableView);
- memoryAllocationTraceTableView = new MemoryAllocationTraceTableView(memoryLeftTabView.getContentComposite(), SWT.NONE);
- memoryLeftTabView.addView(memoryAllocationTraceTableView, false);
+ memoryAllocationTraceTableView = new MemoryAllocationTraceTableView(memoryTabView.getContentComposite(), SWT.NONE);
- addView(memoryAllocationTraceTableView);
+ memoryTabView.addView(memoryAllocationTraceTableView, false);
+ addView(memoryAllocationTraceTableView);
}
- addView(memoryLeftTabView);
--
- DATabComposite memoryRightTabView = new DATabComposite(bottomForm, SWT.NONE, false, true);
++ addView(memoryTabView);
++
+ DATabComposite memoryMapCallStackView = new DATabComposite(bottomRightForm, SWT.NONE, false);
+ memoryMapCallStackView.setTabWidth(100);
{
- memoryMapView = new MemoryMapView(memoryRightTabView.getContentComposite(), SWT.NONE);
- memoryRightTabView.addView(memoryMapView);
+ memoryMapView = new MemoryMapView(memoryMapCallStackView.getContentComposite(), SWT.NONE);
addView(memoryMapView);
+ memoryMapCallStackView.addView(memoryMapView, false);
- memoryCallStackView = new MemoryCallStackView(memoryRightTabView.getContentComposite(), SWT.NONE);
- memoryRightTabView.addView(memoryCallStackView);
+ memoryCallStackView = new MemoryCallStackView(memoryMapCallStackView.getContentComposite(), SWT.NONE);
addView(memoryCallStackView);
+ memoryMapCallStackView.addView(memoryCallStackView, false);
}
- addView(memoryRightTabView);
++ addView(memoryMapCallStackView);
+
+ baseForm.setWeights(new int[] { 60, 40 });
+ bottomForm.setWeights(new int[] { 75, 25 });
- topForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
+ baseForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
bottomForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
+ bottomLeftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
+ bottomRightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
DataManagerRegistry.registerPageDataManager(MemoryDataManager.getInstance());
+ DataManagerRegistry.registerPageDataManager(HeapDataManager.getInstance());
}
@Override
if (libraryAllocByte == null) {\r
libraryAllocByte = new Long(0);\r
}\r
- libraryAllocByteMap.get(log.getPid()).put(libraryInfo.getID(),\r
- libraryAllocByte + size);\r
}\r
- allocationSeriesDataSetMap.put(address, size);\r
- } catch (NumberFormatException ne) {\r
- Logger.exception(ne);\r
+ else {\r
+ libraryAllocByte = new Long(0);\r
+ }\r
+ \r
+ libraryAllocByteMap.get(pid).put(binaryId,libraryAllocByte + allocsize);\r
+ }\r
+ \r
+ if(!allocAddressDataMap.containsKey(keystring)) {\r
+ List<List<Object>> newlist = new ArrayList<List<Object>>();\r
+ List<Object> onedata = new ArrayList<Object>();\r
+ onedata.add(tracetime);\r
+ onedata.add(allocsize);\r
+ onedata.add(binaryId);\r
+ \r
+ newlist.add(onedata);\r
+ allocAddressDataMap.put(keystring, newlist);\r
+ }\r
+ else {\r
+ List<Object> onedata = new ArrayList<Object>();\r
+ onedata.add(tracetime);\r
+ onedata.add(allocsize);\r
+ onedata.add(binaryId);\r
+ \r
+ allocAddressDataMap.get(keystring).add(onedata);\r
+ }\r
+ } catch (NumberFormatException ne) {\r
+ Logger.exception(ne);\r
+ }\r
+ }\r
+ \r
+ private void minusFreeData(MemoryData log) {\r
+ int pid = log.getPid();\r
+ long address = log.getAddress();\r
+ long tracetime = log.getTime();\r
+ \r
+ String keystring = String.format("%d-%d", pid, address);\r
+ \r
+ if (!allocAddressDataMap.containsKey(keystring)) {\r
+ return;\r
+ }\r
+ \r
+ long allocsize = -1;\r
+ int alloclib = 0;\r
+ \r
+ if(allocAddressDataMap.containsKey(keystring)) {\r
+ int listsize = allocAddressDataMap.get(keystring).size();\r
+ for(int j = 0; j < listsize ; j++) {\r
+ List<Object> onedata = allocAddressDataMap.get(keystring).get(j);\r
+ \r
+ if((Long) onedata.get(0) <= tracetime) {\r
+ allocsize = (Long) onedata.get(1);\r
+ alloclib = (Integer) onedata.get(2);\r
+ allocAddressDataMap.get(keystring).remove(j);\r
+ break;\r
+ }\r
}\r
- } else if (MEM_API_TYPE_FREE == fdApiType) {\r
- if (!allocationSeriesDataSetMap.containsKey(address)) {\r
- return;\r
+ }\r
+ \r
+ if(allocsize == -1)\r
+ return;\r
+ \r
+ if (alloclib == appAllocSeriesID) {\r
+ Long allocByte = mainAllocByteMap.get(pid);\r
+ mainAllocByteMap.put(pid, allocByte - allocsize);\r
+ } else {\r
+ if(libraryAllocByteMap.get(pid).containsKey(alloclib)) {\r
+ Long libraryAllocByte = libraryAllocByteMap.get(pid).get(alloclib);\r
+ if (libraryAllocByte != null) {\r
+ long calsize = libraryAllocByte - allocsize;\r
+ \r
+ if (calsize < 0){\r
+ calsize = 0;\r
+ }\r
+ libraryAllocByteMap.get(pid).put(alloclib,calsize);\r
+ }\r
+ else {\r
+ libraryAllocByte = new Long(0);\r
+ libraryAllocByteMap.get(pid).put(alloclib,libraryAllocByte);\r
+ }\r
}\r
- size = allocationSeriesDataSetMap.get(address);\r
+ }\r
+ }\r
\r
- if (libraryInfo == null) {\r
- allocByteMap.put(log.getPid(), allocByte - size);\r
- } else {\r
- Long libraryAllocByte = libraryAllocByteMap.get(log.getPid()).get(\r
- libraryInfo.getID());\r
- libraryAllocByteMap.get(log.getPid()).put(libraryInfo.getID(),\r
- libraryAllocByte - size);\r
+ private void GetAllocationData(List<LogData> memoryLogList) {\r
+ int size = memoryLogList.size();\r
+ for (int i = 0; i < size; i++) {\r
+ MemoryData logData = (MemoryData) memoryLogList.get(i);\r
+ \r
+ long errorNo = logData.getErrno();\r
+ \r
+ if(errorNo != 0)\r
+ continue;\r
+ \r
+ int pid = logData.getPid();\r
+ int memApiType = logData.getMemoryApiType();\r
+ \r
+ if (mainAllocByteMap.get(pid) == null) {\r
+ mainAllocByteMap.put(Integer.valueOf(pid), new Long(0));\r
+ libraryAllocByteMap.put(Integer.valueOf(pid), new HashMap<Integer, Long>());\r
+ }\r
+ \r
+ if(memApiType == MEM_API_TYPE_ALLOC) {\r
+ plusAllocData(logData);\r
}\r
+ else if(memApiType == MEM_API_TYPE_FREE) {\r
+ freedatalist.add(logData);\r
+ } \r
+ }\r
+ \r
+ }\r
+ \r
+ private void calculateFreeData(){\r
+ for(MemoryData freelog : freedatalist) {\r
+ minusFreeData(freelog);\r
}\r
+ freedatalist.clear();\r
}\r
\r
- public void makeAllocData(MemoryData log) {\r
- ArrayList<Object> dbAllocData = new ArrayList<Object>();\r
+ private void GetSystemMemoryData(List<LogData> systemLogList) {\r
+ ArrayList<List<Object>> systemDataList = new ArrayList<List<Object>>();\r
+ ArrayList<List<Object>> targetProcessDataList = new ArrayList<List<Object>>();\r
\r
- MemoryData mData = log;\r
+ int size = systemLogList.size();\r
+ for (int i = 0; i < size; i++) {\r
+ SystemData log = (SystemData) systemLogList.get(i);\r
+ \r
+ /*\r
+ * Make information for other process\r
+ */\r
+ List<Object> pIDList = new ArrayList<Object>();\r
+ List<Object> processLoadList = new ArrayList<Object>();\r
+ String[] processLoadDatas = log.getOtherProcessLoad().split(CommonConstants.COMMA);\r
+ for (int ii = 0; ii < processLoadDatas.length; ii++) {\r
+ String processLoad = processLoadDatas[ii];\r
+ if (processLoad == null || processLoad.isEmpty()) {\r
+ continue;\r
+ }\r
+ pIDList.add(new Integer(processLoad));\r
+ processLoadList.add(processLoadDatas[++ii]);\r
+ }\r
+ \r
+ /*\r
+ * Make SystemData Table data\r
+ */\r
+ ArrayList<Object> dbSystemData = new ArrayList<Object>();\r
+ dbSystemData.add(new Long(log.getTime()));\r
+ dbSystemData.add(new Long(log.getSystemMemoryUsed()));\r
+ dbSystemData.add(pIDList);\r
+ dbSystemData.add(processLoadList);\r
+ systemDataList.add(dbSystemData);\r
+ \r
+ /*\r
+ * Make target Process Table data\r
+ */\r
+ ProcessProfileData[] targetProcessList = log.getProcessProfileDataList();\r
+ if (targetProcessList != null) {\r
+ for (int j = 0; j < targetProcessList.length; j++) {\r
+ ProcessProfileData process = targetProcessList[j];\r
\r
- dbAllocData.add(Long.valueOf(mData.getSeq()));\r
- dbAllocData.add(Integer.valueOf(mData.getPid()));\r
- dbAllocData.add(Integer.valueOf(mData.getApiId()));\r
- dbAllocData.add(Integer.valueOf(mData.getMemoryApiType()));\r
- dbAllocData.add(Long.valueOf(mData.getAddress()));\r
- dbAllocData.add(Long.valueOf(mData.getTime()));\r
- dbAllocData.add(Long.valueOf(mData.getCallerPcAddr()));\r
- dbAllocData.add(String.valueOf(mData.getArgs()));\r
- dbAllocData.add(String.valueOf(mData.getReturn()));\r
- dbAllocData.add(String.valueOf(mData.getLibName()));\r
- dbAllocData.add(Integer.valueOf(mData.getMsgID()));\r
- dbAllocData.add(Integer.valueOf(mData.getTid()));\r
- dbAllocData.add(Long.valueOf(mData.getSize()));\r
+ ArrayList<Object> dbTargetProcessData = new ArrayList<Object>();\r
\r
- memoryAllocDataList.add(dbAllocData);\r
- }\r
+ /*\r
+ * Set inform for Heap allocation\r
+ */\r
+ \r
+ calculateFreeData();\r
+ \r
+ List<Object> binaryIDList = new ArrayList<Object>();\r
+ List<Object> allocByteList = new ArrayList<Object>();\r
+ binaryIDList.add(appAllocSeriesID);\r
+ if (mainAllocByteMap.get(process.getPid()) == null) {\r
+ allocByteList.add(new Long(0));\r
+ } else {\r
+ allocByteList.add(mainAllocByteMap.get(process.getPid()));\r
+ }\r
\r
- public void makeFreeData(MemoryData log) {\r
- ArrayList<Object> dbFreeData = new ArrayList<Object>();\r
+ Map<Integer, Long> libraryList = libraryAllocByteMap.get(process.getPid());\r
+ if (libraryList == null) {\r
+ libraryList = new HashMap<Integer, Long>();\r
+ }\r
\r
- MemoryData mData = log;\r
+ Iterator<Integer> iter = libraryList.keySet().iterator();\r
+ while (iter.hasNext()) {\r
+ Integer binaryID = iter.next();\r
+ binaryIDList.add(binaryID);\r
+ allocByteList.add(libraryList.get(binaryID));\r
+ }\r
\r
- dbFreeData.add(Long.valueOf(mData.getSeq()));\r
- dbFreeData.add(Integer.valueOf(mData.getPid()));\r
- dbFreeData.add(Integer.valueOf(mData.getMsgID()));\r
- dbFreeData.add(Long.valueOf(mData.getTime()));\r
- dbFreeData.add(Long.valueOf(mData.getAddress()));\r
+ /*\r
+ * Set inform for Thread\r
+ */\r
+ List<Object> threadIdList = new ArrayList<Object>();\r
+ List<Object> threadLoadList = new ArrayList<Object>();\r
+ // TODO Remove unnecessary String parsing. first Fix in SystemData.java\r
+ String[] threadLoads = process.getThreadLoad().split(CommonConstants.COMMA);\r
+ for (int iii = 0; iii < threadLoads.length; iii++) {\r
+ String threadLoad = threadLoads[iii];\r
+ if (threadLoad == null || threadLoad.isEmpty()) {\r
+ continue;\r
+ }\r
+ threadIdList.add(new Integer(threadLoad));\r
+ threadLoadList.add(threadLoads[++iii]);\r
+ }\r
+ \r
+ dbTargetProcessData.add(new Long(log.getTime()));\r
+ dbTargetProcessData.add(new Integer(process.getPid()));\r
+ dbTargetProcessData.add(new Float(process.getProcessLoad()));\r
+ dbTargetProcessData.add(new Long(process.getVirtualMemory()));\r
+ dbTargetProcessData.add(new Long(process.getResidentMemory()));\r
+ dbTargetProcessData.add(new Long(process.getSharedMemory()));\r
+ dbTargetProcessData.add(new Long(process.getPssMemory()));\r
+ // for new version\r
+ dbTargetProcessData.add(new Long(process.getThreeDMemory()));\r
+ dbTargetProcessData.add(new Long(process.getGemMemory()));\r
+ \r
+ dbTargetProcessData.add(new Integer(process.getThreadCount()));\r
+ dbTargetProcessData.add(new Long(process.getTotalAllocSize()));\r
+ \r
+ dbTargetProcessData.add(binaryIDList);\r
+ dbTargetProcessData.add(allocByteList);\r
+ dbTargetProcessData.add(threadIdList);\r
+ dbTargetProcessData.add(threadLoadList);\r
\r
- memoryfreeDataList.add(dbFreeData);\r
+ targetProcessDataList.add(dbTargetProcessData);\r
+ }\r
+ }\r
+ }\r
+ \r
+ systemMemoryDBInserter.pushData(systemDataList);\r
+ processMemoryDBInserter.pushData(targetProcessDataList);\r
}\r
--\r
++
public List<List<Object>> getSystemDataFromDB(long start, long end) {\r
- String where = "WHERE SAMPLING_TIME BETWEEN " + start + " AND " + end\r
- + " ORDER BY SAMPLING_TIME";\r
+ String where = ""; \r
+ if (start != 0 || end != 0) {\r
+ where = String.format("WHERE %s BETWEEN %s AND %s", SystemMemoryDBTable.COLUMN.SAMPLING_TIME.name, Long.toString(start), Long.toString(end));\r
+ }\r
+ \r
+ where += " ORDER BY " + SystemMemoryDBTable.COLUMN.SAMPLING_TIME.name;\r
+ \r
List<List<Object>> result = systemMemoryDBTable.selectAllColumnData(where);\r
\r
if (result != null) {\r
}\r
return processedResult;\r
}\r
- \r
- public long getProcessMemoriesFromDB(long time) {\r
- long processMemories = 0;\r
- String query = "SELECT MEMORY_RESIDENT FROM MEMORY_PROCESS_DATA WHERE SAMPLING_TIME = "\r
- + "(SELECT MAX(SAMPLING_TIME) FROM MEMORY_PROCESS_DATA WHERE SAMPLING_TIME <= "\r
- + time + ")";\r
- ResultSet rs = SqlConnectionManager.executeQueryRS(query);\r
- if (rs != null) {\r
- try {\r
- while (rs.next()) {\r
- processMemories += rs.getLong(1);\r
- }\r
- } catch (SQLException e) {\r
- Logger.exception(e);\r
- } finally {\r
- SqlConnectionManager.releaseResultSet(rs);\r
- }\r
- }\r
- return processMemories;\r
- }\r
\r
- public List<List<Object>> getAllocationDataFromDB(long start, long end, String targetPIDs) {\r
- List<List<Object>> allocatedResult = new ArrayList<List<Object>> ();\r
- String where = "WHERE"; \r
- if (start != 0 || end != 0) {\r
- where += String.format(" %s BETWEEN %s AND %s AND", AllocateDBTable.COLUMN.ALLOCATED_TIME.name, Long.toString(start), Long.toString(end));\r
- }\r
- \r
- where += String.format(" %s IN %s", AllocateDBTable.COLUMN.PID.name, targetPIDs);\r
- \r
- where += " ORDER BY " + AllocateDBTable.COLUMN.SEQUENCE_NUMBER.name;\r
- \r
- List<List<Object>> queryResult = allocateDBTable.selectAllColumnData(where);\r
- if (queryResult == null) {\r
- return allocatedResult;\r
- }\r
- allocatedResult = queryResult;\r
- \r
- return allocatedResult;\r
- }\r
- \r
- public List<List<Object>> getFreeDataFromDB(long start, long end, String targetPIDs) {\r
- List<List<Object>> freeResult = new ArrayList<List<Object>> ();\r
+ public Map<Integer, List<List<Object>>> getTargetProcessDataMapFromDB(long start, long end, String targetPIDs) {\r
+ Map<Integer, List<List<Object>>> processedResult = new HashMap<Integer, List<List<Object>>>();\r
String where = "WHERE";\r
if (start != 0 || end != 0) { \r
- where += String.format(" %s BETWEEN %s AND %s AND", FreeDBTable.COLUMN.FREE_TIME.name, Long.toString(start), Long.toString(end));\r
+ where += String.format(" SAMPLING_TIME BETWEEN %s AND %s AND", Long.toString(start), Long.toString(end));\r
}\r
\r
- where += String.format(" %s IN %s", FreeDBTable.COLUMN.PID.name, targetPIDs);\r
- \r
- where += " ORDER BY " + FreeDBTable.COLUMN.FREE_TIME.name;\r
+ where += String.format(" PID IN %s", targetPIDs);\r
+ where += " ORDER BY SAMPLING_TIME";\r
\r
- List<List<Object>> queryResult = freeDBTable.selectAllColumnData(where);\r
+ List<List<Object>> queryResult = processMemoryDBTable.selectAllColumnData(where);\r
if (queryResult == null) {\r
- return freeResult;\r
+ return processedResult;\r
}\r
- freeResult = queryResult;\r
- \r
- return freeResult;\r
- }\r
- \r
- public List<List<Object>> makeLeakDataForRange(long startTime, long endTime, String targetPIDs) {\r
- List<List<Object>> rangeDataList = new ArrayList<List<Object>> ();\r
\r
- List<List<Object>> allocDataList = getAllocationDataFromDB(startTime, endTime, targetPIDs);\r
- List<List<Object>> freeDataList = getFreeDataFromDB(startTime, endTime, targetPIDs);\r
- \r
- if (allocDataList != null) {\r
- if (freeDataList == null) {\r
- rangeDataList.addAll(allocDataList);\r
- } else {\r
- List<List<Object>> result = makeSubLeakDataForRange(allocDataList, freeDataList);\r
- if (result != null && !result.isEmpty())\r
- rangeDataList.addAll(result);\r
+ for (int i = 0; i < queryResult.size(); i++) {\r
+ List<Object> row = queryResult.get(i);\r
+ Integer pid = (Integer) row.get(TargetProcessDBTable.COLUMN.PID.ordinal());\r
+ List<List<Object>> processData = processedResult.get(pid);\r
+ if (processData == null) {\r
+ processData = new ArrayList<List<Object>>();\r
+ processedResult.put(pid, processData);\r
}\r
+ processData.add(row);\r
}\r
- \r
- return rangeDataList;\r
+ return processedResult;\r
}\r
\r
- private List<List<Object>> makeSubLeakDataForRange(List<List<Object>> allocData, List<List<Object>> freeData) {\r
- for (int i = 0; i < freeData.size(); i++) {\r
- List<Object> iFreeData = freeData.get(i);\r
- long address = (Long) iFreeData.get(4);\r
- long freeTime = (Long) iFreeData.get(3);\r
- \r
- int allocDataSize = allocData.size();\r
- for (int j = 0; j < allocDataSize; j++) {\r
- List<Object> iAllocData = allocData.get(j);\r
- long allocatedTime = (Long) iAllocData.get(AllocateDBTable.COLUMN.ALLOCATED_TIME.index);\r
- if (allocatedTime <= freeTime) {\r
- if (address == (Long) iAllocData.get(AllocateDBTable.COLUMN.ALLOCATED_ADDRESS.index)) {\r
- allocData.remove(j);\r
- break;\r
- }\r
- } else {\r
- break;\r
- }\r
- }\r
- }\r
- \r
- return allocData;\r
- }\r
- \r
- private void GetAllocationData(List<LogData> memoryLogList) {\r
- int size = memoryLogList.size();\r
- for (int i = 0; i < size; i++) {\r
- MemoryData logData = (MemoryData) memoryLogList.get(i);\r
- if (allocByteMap.get(logData.getPid()) == null) {\r
- allocByteMap.put(Integer.valueOf(logData.getPid()), new Long(0));\r
- libraryAllocByteMap.put(Integer.valueOf(logData.getPid()), new HashMap<Integer, Long>());\r
- }\r
- \r
- int memApiType = logData.getMemoryApiType();\r
- int internalFlag = logData.getInternalCall();\r
- long errorNo = logData.getErrno();\r
+ public long getSystemMemoriesFromDB(long time) {\r
+ long processMemories = 0;\r
+ String tableName = systemMemoryDBTable.getTableName();\r
+ String columnName = SystemMemoryDBTable.COLUMN.MEMORY_USAGE_SYSTEM.name;\r
+ String timecolumn = SystemMemoryDBTable.COLUMN.SAMPLING_TIME.name;\r
\r
- /*\r
- * Check library allocation\r
- */\r
- BinaryInfo binaryInfo = null;\r
- Project project = Global.getProject();\r
- ProcessMemoryMap pmap = project.getProcessInformation(logData.getPid()).getProcessMemoryMap(logData.getTime());\r
- \r
- if (pmap != null) {\r
- LibraryObject lib = pmap.getLibraryByAddress(logData.getCallerPcAddr());\r
- if (lib != null && lib != pmap.getMainbinary()) {\r
- binaryInfo = project.getDeviceStatusInfo().getBinaryInfo(lib.getBinaryID());\r
- }\r
- }\r
- \r
- if (errorNo == 0 && MEM_USER == internalFlag) {\r
- if (MEM_API_TYPE_ALLOC == memApiType || MEM_API_TYPE_FREE == memApiType) {\r
- addNewSeriesUserAllocData(memApiType, logData, binaryInfo);\r
- }\r
- }\r
- \r
- /*\r
- * Save allocation and free api call \r
- */\r
- if(MEM_API_TYPE_ALLOC == memApiType) {\r
- makeAllocData(logData);\r
- }\r
- else if(MEM_API_TYPE_FREE == memApiType) {\r
- makeFreeData(logData);\r
- }\r
- }\r
- \r
- }\r
- \r
- private void GetSystemMemoryData(List<LogData> systemLogList) {\r
- ArrayList<List<Object>> systemDataList = new ArrayList<List<Object>>();\r
- ArrayList<List<Object>> targetProcessDataList = new ArrayList<List<Object>>();\r
- \r
- int size = systemLogList.size();\r
- for (int i = 0; i < size; i++) {\r
- SystemData log = (SystemData) systemLogList.get(i);\r
- \r
- /*\r
- * Make information for other process\r
- */\r
- List<Object> pIDList = new ArrayList<Object>();\r
- List<Object> processLoadList = new ArrayList<Object>();\r
- String[] processLoadDatas = log.getOtherProcessLoad().split(CommonConstants.COMMA);\r
- for (int ii = 0; ii < processLoadDatas.length; ii++) {\r
- String processLoad = processLoadDatas[ii];\r
- if (processLoad == null || processLoad.isEmpty()) {\r
- continue;\r
- }\r
- pIDList.add(new Integer(processLoad));\r
- processLoadList.add(processLoadDatas[++ii]);\r
- }\r
- \r
- /*\r
- * Make SystemData Table data\r
- */\r
- ArrayList<Object> dbSystemData = new ArrayList<Object>();\r
- dbSystemData.add(new Long(log.getTime()));\r
- dbSystemData.add(new Long(log.getSystemMemoryUsed()));\r
- dbSystemData.add(pIDList);\r
- dbSystemData.add(processLoadList);\r
- systemDataList.add(dbSystemData);\r
- \r
- /*\r
- * Make target Process Table data\r
- */\r
- ProcessProfileData[] targetProcessList = log.getProcessProfileDataList();\r
- if (targetProcessList != null) {\r
- for (int j = 0; j < targetProcessList.length; j++) {\r
- ProcessProfileData process = targetProcessList[j];\r
- \r
- ArrayList<Object> dbTargetProcessData = new ArrayList<Object>();\r
- dbTargetProcessData.add(new Long(log.getTime()));\r
- dbTargetProcessData.add(new Integer(process.getPid()));\r
- dbTargetProcessData.add(new Float(process.getProcessLoad()));\r
- dbTargetProcessData.add(new Long(process.getVirtualMemory()));\r
- dbTargetProcessData.add(new Long(process.getResidentMemory()));\r
- dbTargetProcessData.add(new Long(process.getSharedMemory()));\r
- dbTargetProcessData.add(new Long(process.getPssMemory()));\r
- dbTargetProcessData.add(new Integer(process.getThreadCount()));\r
- dbTargetProcessData.add(new Long(process.getTotalAllocSize()));\r
- \r
- /*\r
- * Set inform for Heap allocation\r
- */\r
- List<Object> binaryIDList = new ArrayList<Object>();\r
- List<Object> allocByteList = new ArrayList<Object>();\r
- binaryIDList.add(appAllocSeriesID);\r
- if (allocByteMap.get(process.getPid()) == null) {\r
- allocByteList.add(new Long(0));\r
- } else {\r
- allocByteList.add(allocByteMap.get(process.getPid()));\r
- }\r
- \r
- Map<Integer, Long> libraryList = libraryAllocByteMap.get(process.getPid());\r
- if (libraryList == null) {\r
- libraryList = new HashMap<Integer, Long>();\r
- }\r
- \r
- Iterator<Integer> iter = libraryList.keySet().iterator();\r
- while (iter.hasNext()) {\r
- Integer binaryID = iter.next();\r
- binaryIDList.add(binaryID);\r
- allocByteList.add(libraryList.get(binaryID));\r
- }\r
- dbTargetProcessData.add(binaryIDList);\r
- dbTargetProcessData.add(allocByteList);\r
- \r
- /*\r
- * Set inform for Thread\r
- */\r
- List<Object> threadIdList = new ArrayList<Object>();\r
- List<Object> threadLoadList = new ArrayList<Object>();\r
- // TODO Remove unnecessary String parsing. first Fix in SystemData.java\r
- String[] threadLoads = process.getThreadLoad().split(CommonConstants.COMMA);\r
- for (int iii = 0; iii < threadLoads.length; iii++) {\r
- String threadLoad = threadLoads[iii];\r
- if (threadLoad == null || threadLoad.isEmpty()) {\r
- continue;\r
- }\r
- threadIdList.add(new Integer(threadLoad));\r
- threadLoadList.add(threadLoads[++iii]);\r
- }\r
- dbTargetProcessData.add(threadIdList);\r
- dbTargetProcessData.add(threadLoadList);\r
- \r
- targetProcessDataList.add(dbTargetProcessData);\r
+ String query = "SELECT "+columnName+" FROM "+tableName+" WHERE "+timecolumn+" = "\r
+ + "(SELECT MAX("+timecolumn+") FROM "+tableName+" WHERE "+timecolumn+" <= "\r
+ + time + ")";\r
+ ResultSet rs = SqlConnectionManager.executeQueryRS(query);\r
+ if (rs != null) {\r
+ try {\r
+ while (rs.next()) {\r
+ processMemories += rs.getLong(1);\r
}\r
+ } catch (SQLException e) {\r
+ Logger.exception(e);\r
+ } finally {\r
+ SqlConnectionManager.releaseResultSet(rs);\r
}\r
}\r
- \r
- systemMemoryDBInserter.pushData(systemDataList);\r
- processMemoryDBInserter.pushData(targetProcessDataList);\r
- }\r
+ return processMemories;\r
- }\r
++ }
}\r
\r
private int keyindex = 0;\r
private Long StartTime;\r
- private Long EndTime;\r
- private Long Current;
+ private Long EndTime;
++ private Long Current;\r
private String[] columnNames = {
MemoryPageLabels.MEMORY_DETAILS_VIEW_ITEM,
if (staticInput != null){\r
output.add(staticInput);\r
}\r
- }\r
- \r
- return output;\r
- }\r
- \r
- private Map<String, List<Object>> calculateAllocateData(List<List<Object>> allocData, List<List<Object>> freeData) {\r
- // Map for result\r
- Map<String, List<Object>> output = new HashMap<String, List<Object>> ();\r
- // Map for saving allocation address\r
- Map<Long, List<Object>> addresmap = new HashMap<Long, List<Object>> ();\r
- \r
- for (int i = 0; i < allocData.size(); i++) {\r
- // Get one allocation api data\r
- List<Object> iAllocData = allocData.get(i);\r
- String libname = (String) iAllocData.get(AllocateDBTable.COLUMN.CALLER_LIBRARY_NAME.index);\r
- Long address = (Long) iAllocData.get(AllocateDBTable.COLUMN.ALLOCATED_ADDRESS.index);\r
- Long size = (Long) iAllocData.get(AllocateDBTable.COLUMN.ALLOCATED_MEMORY_SIZE.index);\r
\r
- // Save each library to Map\r
- if(!output.containsKey(libname)) {\r
- List<Object> allocdata = new ArrayList<Object>();\r
- \r
- // Persistent Byte\r
- allocdata.add(size);\r
- // Persistent Count\r
- allocdata.add((Integer) 1);\r
- // Free count\r
- allocdata.add((Integer) 0);\r
- // Total Byte\r
- allocdata.add(size);\r
- \r
- output.put(libname, allocdata);\r
- }\r
- else {\r
- Long sumsize = (Long)output.get(libname).get(0) + size;\r
- output.get(libname).set(0, sumsize);\r
- output.get(libname).set(1, (Integer) output.get(libname).get(1) + 1);\r
- output.get(libname).set(3, sumsize);\r
- }\r
- \r
- List<Object> onedata = new ArrayList<Object> ();\r
- onedata.add(libname);\r
- onedata.add(size);\r
- \r
- addresmap.put(address, onedata);\r
+ persistentSize += (Long) elem.getValue().get(0);\r
+ persistentCount += (Long) elem.getValue().get(1);\r
+ freecount += (Long) elem.getValue().get(2);\r
+ totalSize += (Long) elem.getValue().get(3);\r
}\r
\r
- for (int i = 0; i < freeData.size(); i++) {\r
- List<Object> iFreeData = freeData.get(i);\r
- long address = (Long) iFreeData.get(4);\r
- \r
- if(addresmap.containsKey(address)) {\r
- String libname = (String) addresmap.get(address).get(0);\r
- Long allocsize = (Long) addresmap.get(address).get(1);\r
- output.get(libname).set(0, (Long) output.get(libname).get(0) - allocsize);\r
- output.get(libname).set(2, (Integer) output.get(libname).get(2) + 1);\r
- \r
- addresmap.remove(address);\r
- }\r
- }\r
+ List<Object> total = new ArrayList<Object> ();\r
+ \r
+ total.add(persistentSize);\r
+ total.add(persistentCount);\r
+ total.add(freecount);\r
+ total.add(totalSize);\r
+ total.add(persistentCount + freecount);\r
\r
+ TableInput totalInput = HeapDataManager.getInstance().makeTreeInputForDatas("Total", total, index++);\r
+ output.add(totalInput);\r
+ \r
return output;\r
}\r
- \r
- private TableInput makeTreeInputForDatas(String path, List<Object> staticdata, int index) {\r
- DATableDataFormat tableData = new DATableDataFormat(index);\r
\r
- List<String> text = new ArrayList<String>();\r
- List<Object> data = new ArrayList<Object>();\r
+ private String getTargetPIDString(){\r
+ List<Integer> pidlist = new ArrayList<Integer>();\r
-\r
++
+ int[] pids = Global.getProject().getProcessIDs();\r
+ int targetPID = Toolbar.INSTANCE.getSelectedPid();\r
\r
- if (staticdata == null) {\r
- Logger.error("very strange case !!");\r
- return null;\r
- }\r
- \r
- // Path\r
- String libname = path;\r
- \r
- if(path == Global.getCurrentApplication().getMainApp().getExecPath()) {\r
- libname = MemoryPageLabels.MEMORY_MAIN_EXCUTABLE;\r
+ if(targetPID > 0) {\r
+ pidlist.add(targetPID);\r
}\r
- \r
- text.add(libname);\r
- data.add(libname);\r
- \r
- // Persistent byte\r
- Long PByte = (Long) staticdata.get(0);\r
- data.add(PByte);\r
- \r
- String pbytestr = String.format("%,d B", PByte); \r
- if (PByte > 1024) {\r
- PByte /= 1024;\r
- pbytestr = String.format("%,d KB", PByte);\r
+ else {\r
+ for (int i = 0; i < pids.length; i++) {\r
+ pidlist.add(pids[i]);\r
+ } \r
}\r
- \r
- text.add(pbytestr);\r
\r
- // Persistent count\r
- Integer PCount = (Integer) staticdata.get(1);\r
- text.add(PCount.toString());\r
- data.add(PCount);\r
+ String pidliststring = "(";\r
\r
- // Free count\r
- Integer FCount = (Integer) staticdata.get(2);\r
- text.add(FCount.toString());\r
- data.add(FCount);\r
+ for(int i = 0 ; i < pidlist.size() ; i++) {\r
+ pidliststring += Integer.toString(pidlist.get(i));\r
\r
- // Total Byte\r
- Long TotalByte = (Long) staticdata.get(3); \r
- data.add(TotalByte);\r
- \r
- String tbytestr = String.format("%,d B", TotalByte); \r
- if (TotalByte > 1024) {\r
- TotalByte /= 1024;\r
- tbytestr = String.format("%,d KB", TotalByte);\r
+ if(i != pidlist.size() - 1) {\r
+ pidliststring += ", ";\r
+ }\r
}\r
- text.add(tbytestr);\r
\r
- // Total count\r
- Integer TotalCount = PCount + FCount;\r
- text.add(TotalCount.toString());\r
- data.add(TotalCount);\r
- \r
- TreeInput output = new TreeInput();\r
- output.setText(text);\r
- tableData.getData().addAll(data);\r
- output.setData(tableData);\r
+ pidliststring += ")";\r
\r
- return output;\r
+ return pidliststring;\r
}\r
- \r
- public void removeSelection() {\r
+ \r
+ public void removeSelection() { \r
table.removeAll();\r
updateTable();\r
}\r
- }\r
+ \r
+ @Override\r
+ public void clear() {\r
+ table.removeAll();\r
+ getSelectionIndex().clear();\r
+ getSelections().clear();\r
+ \r
+ StartTime = (long)0;\r
+ EndTime = (long)0;\r
+ }\r
-}
++}
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.ScreenshotTabComposite;
-import org.tizen.dynamicanalyzer.ui.widgets.DAAdvancedTabComposite;
+import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineTableView;
- import org.tizen.dynamicanalyzer.ui.widgets.DAAdvancedTabComposite;
import org.tizen.dynamicanalyzer.widgets.da.view.DAPageComposite;
import org.tizen.dynamicanalyzer.widgets.da.view.DATabComposite;
import org.tizen.dynamicanalyzer.resources.ColorResources;
GLTextureTableView glTextureView;
GLStatisticsTableView glStatisticsView;
GLRedundantTableView glRedundantView;
-
+
public GLPage(Composite parent, int style) {
super(parent, style);
-
setTitle(AnalyzerLabels.COOLBAR_AREA_OPENGLES);
this.setData(DAPageComposite.KEY_TOOLTIP, ShortCutManager.COOLBAR_AREA_GRAPHICS_TOOLTIP);
- this.setBackground(ColorResources.CONFIGURATION_TABLE_COVER_BACKGROUND_COLOR);
+ this.setBackground(ColorResources.WHITE);
this.setLayout(new FillLayout());
- baseForm = new SashForm(this, SWT.HORIZONTAL);
+
+ baseForm = new SashForm(this, SWT.VERTICAL);
baseForm.setLayout(new FillLayout());
baseForm.setForeground(ColorResources.TAB_SELECTED_COLOR_START);
- // ((FillLayout) getLayout()).marginHeight = 15;
- // ((FillLayout) getLayout()).marginWidth = 5;
- ((FillLayout) getLayout()).marginHeight = 15;
- ((FillLayout) getLayout()).marginWidth = 5;
-
- leftForm = new SashForm(baseForm, SWT.VERTICAL);
- glChartView = new GLChartView(leftForm, SWT.NONE);
+ topForm = new SashForm(baseForm, SWT.VERTICAL);
+ GLChartView glChartView = new GLChartView(topForm, SWT.NONE);
addView(glChartView);
-
- bottomForm = new SashForm(leftForm, SWT.HORIZONTAL);
- bottomForm.setForeground(ColorResources.TAB_SELECTED_COLOR_START);
- bottomForm.setLayout(new FillLayout());
-
- DATabComposite glLeftTabView = new DAAdvancedTabComposite(bottomForm, SWT.NONE, false);
+
+ bottomForm = new SashForm(baseForm, SWT.HORIZONTAL);
+ DATabComposite glLeftTableView = new DATabComposite(bottomForm, SWT.NONE, false, true);
{
- glStatisticsView = new GLStatisticsTableView(glLeftTabView.getContentComposite(),
- SWT.NONE);
+ GLStatisticsTableView glStatisticsView = new GLStatisticsTableView(glLeftTableView.getContentComposite(), SWT.NONE);
+ glLeftTableView.addView(glStatisticsView);
addView(glStatisticsView);
- glLeftTabView.addView(glStatisticsView, false);
-
- glAPIListView = new GLAPIListView(glLeftTabView.getContentComposite(), SWT.NONE);
+
+ GLAPIListView glAPIListView = new GLAPIListView(glLeftTableView.getContentComposite(), SWT.NONE);
+ glLeftTableView.addView(glAPIListView);
addView(glAPIListView);
- glLeftTabView.addView(glAPIListView, false);
}
-
-
- DATabComposite glRightTabView = new DAAdvancedTabComposite(bottomForm, SWT.NONE, false);
- glRightTabView.setTabWidth(RIGHT_TAB_WIDTH);
-
+ addView(glLeftTableView);
+
+ DATabComposite glRightTableView = new DATabComposite(bottomForm, SWT.NONE, false, true);
{
- glRedundantView = new GLRedundantTableView(glRightTabView.getContentComposite(),
- SWT.NONE);
+ GLRedundantTableView glRedundantView = new GLRedundantTableView(glRightTableView.getContentComposite(), SWT.NONE);
+ glRightTableView.addView(glRedundantView);
addView(glRedundantView);
- glRightTabView.addView(glRedundantView, false);
-
- glContextView = new GLContextTableView(glRightTabView.getContentComposite(), SWT.NONE);
- addView(glContextView);
- glRightTabView.addView(glContextView, false);
-
- glProgramView = new GLProgramTableView(glRightTabView.getContentComposite(), SWT.NONE);
- addView(glProgramView);
- glRightTabView.addView(glProgramView, false);
-
- glTextureView = new GLTextureTableView(glRightTabView.getContentComposite(), SWT.NONE);
- addView(glTextureView);
- glRightTabView.addView(glTextureView, false);
+
+ GLContextTableView glContextTableView = new GLContextTableView(glRightTableView.getContentComposite(), SWT.NONE);
+ glRightTableView.addView(glContextTableView);
+ addView(glContextTableView);
+
+ GLProgramTableView glProgramTableView = new GLProgramTableView(glRightTableView.getContentComposite(), SWT.NONE);
+ glRightTableView.addView(glProgramTableView);
+ addView(glProgramTableView);
+
+ GLTextureTableView glTextureTableView = new GLTextureTableView(glRightTableView.getContentComposite(), SWT.NONE);
+ glRightTableView.addView(glTextureTableView);
+ addView(glTextureTableView);
}
-
- leftForm.setWeights(new int[] { 46, 54 });
- bottomForm.setWeights(new int[] { 50, 50 });
- rightForm = new SashForm(baseForm, SWT.VERTICAL);
-
- GLDetailsView detailsView = new GLDetailsView(rightForm, SWT.NONE);
- addView(detailsView);
-
- ScreenshotTabComposite tabView = new ScreenshotTabComposite(rightForm, SWT.NONE,
- GLPage.pageID);
- tabView.setObservingViews(ScreenshotTabComposite.screenshotViewID,
- new String[] { GLPage.apiListViewID });
- tabView.setObservingViews(ScreenshotTabComposite.callstackViewID,
- new String[] { GLPage.apiListViewID });
- addView(tabView);
-
- rightForm.setWeights(new int[] { 50, 50 });
- baseForm.setWeights(new int[] { 75, 25 });
-
- baseForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
- leftForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
- rightForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
+ addView(glRightTableView);
+
+ topForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
bottomForm.setSashWidth(AnalyzerConstants.SASH_WIDTH);
-
+
DataManagerRegistry.registerPageDataManager(GLDataManager.getInstance());
}
ThreadAPIListTable tableComp = null;
public ThreadAPIListView(Composite parent, int style) {
- super(parent, style, true, true);
+ super(parent, style, false, true);
++
this.setLayout(new FillLayout());
setTitle(ThreadPageLabels.THREAD_API_LIST_VEIW_TITLE);
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.tizen.dynamicanalyzer.appearance.DesignConstants;
+ import org.tizen.dynamicanalyzer.setting.Feature;
+ import org.tizen.dynamicanalyzer.setting.SettingDataManager;
import org.tizen.dynamicanalyzer.ui.info.appStartup.AppStartupView;
import org.tizen.dynamicanalyzer.ui.info.callstack.CallstackView;
+ import org.tizen.dynamicanalyzer.ui.info.process.ProcessView;
import org.tizen.dynamicanalyzer.ui.info.screenshot.ImageViewer;
import org.tizen.dynamicanalyzer.ui.info.screenshot.ScreenshotView;
-import org.tizen.dynamicanalyzer.ui.timeline.TimelinePage;
-import org.tizen.dynamicanalyzer.widgets.da.view.DABaseComposite;
+import org.tizen.dynamicanalyzer.ui.timeline.calltrace.CallTraceView;
+import org.tizen.dynamicanalyzer.ui.timeline.dlog.DlogView;
import org.tizen.dynamicanalyzer.widgets.da.view.DATabComposite;
-public class ScreenshotTabComposite extends DATabComposite {
- public static final String tabID = ScreenshotTabComposite.class.getName();
+public class TimelineTableView extends DATabComposite {
+ public static final String tabID = TimelineTableView.class.getName();
public static final String screenshotViewID = ScreenshotView.class.getName();
public static final String callstackViewID = CallstackView.class.getName();
public static final String imageViewerID = ImageViewer.class.getName();
public static final String appStartupViewID = AppStartupView.class.getName();
+ public static final String processViewID = ProcessView.class.getName();
public static final double DEFAULT_WIDTH = DesignConstants.SCREENSHOT_VIEW_WIDTH + 30;
- public static final double DEFAULT_HEIGHT = DesignConstants.SCREENSHOT_VIEW_HEIGHT
- + 30 + DesignConstants.VIEW_TITLEBAR_HEIGHT;
+ public static final double DEFAULT_TABLE_VIEW_HEIGHT = DesignConstants.TABLE_VIEW_HEIGHT
+ + DesignConstants.TAB_BUTTON_HEIGHT;
{
ID = tabID;
}
- public ScreenshotTabComposite(Composite parent, int style, String pageID) {
+ public TimelineTableView(Composite parent, int style) {
super(parent, style, false);
+ this.enableImageTab(true);
- ScreenshotView screenshotView = new ScreenshotView(getContentComposite(), SWT.NONE, false, pageID);
- addView(screenshotView, false);
+ DlogView dlogView = new DlogView(getContentComposite(),
+ SWT.NONE);
+ addView(dlogView);
+
+ CallTraceView callTraceView = new CallTraceView(getContentComposite(),
+ SWT.NONE);
+ addView(callTraceView, false);
- CallstackView callstack = new CallstackView(getContentComposite(),
- SWT.NONE);
+ CallstackView callstack = new CallstackView(getContentComposite(), SWT.NONE);
addView(callstack, false);
-
- if (TimelinePage.pageID.equals(pageID)) {
- AppStartupView appStartup = new AppStartupView(getContentComposite(), SWT.NONE);
- addView(appStartup, false);
- }
- if (isVisibleProcessView(pageID)) {
- ProcessView processView = new ProcessView(getContentComposite(), SWT.NONE);
- addView(processView, false);
- }
- }
-
- public void setObservingViews(String viewid, String[] observingIDs) {
- DABaseComposite view = getView(viewid);
- if (view instanceof ScreenshotView) {
- ((ScreenshotView) view).setObservingViews(observingIDs);
- } else if (view instanceof CallstackView) {
- ((CallstackView) view).setObservingViews(observingIDs);
- } else if (view instanceof AppStartupView) {
- ((AppStartupView) view).setObservingViews(observingIDs);
- } else if (view instanceof ProcessView) {
- ((ProcessView) view).setObservingViews(observingIDs);
- } else {
- // do nothing
- }
- }
-
- private boolean isVisibleProcessView(String pageID) {
- if (TimelinePage.pageID.equals(pageID)
- && SettingDataManager.INSTANCE.getConnectedTarget().isSelectedFeature(Feature.SYSTEM_ALL_PROCESSES)) {
- return true;
- } else {
- return false;
- }
+
+ AppStartupView appStartup = new AppStartupView(getContentComposite(),
+ SWT.NONE);
+ addView(appStartup, false);
}
}
data.width = DesignConstants.COMBO_APP_WIDTH;
data.height = DesignConstants.COMBO_APP_HEIGHT;
processCombo.setLayoutData(data);
--
++
+ data.top = new FormAttachment(0, DesignConstants.START_BUTTON_TOP);
+ data.left = new FormAttachment(appCombo, 8, SWT.RIGHT);
+ data.width = 60;
+ data.height = 24;
+ startButton.setLayoutData(data);
-
++
initDeviceCombo();
initProcessCombo();
// add pkglist to combo box
if (pkglist != null && !pkglist.isEmpty()) {
int itemsSize = pkglist.size();
+ appCombo.add("===[App List]===");
for (int i = 0; i < itemsSize; i++) {
- appCombo.add(pkglist.get(i).getMainApp().getLabel());
+ String appLabel = pkglist.get(i).getMainApp().getLabel();
+ appCombo.add(appLabel);
}
- //appCombo.select(0);
-
// Tooltip Disabled
// set tooltip
/*
synchronized(oldPkgList){
composeAppCombo(oldPkgList);
}
--
++
+ ShowAppComboTitle();
-
++
if (oldPackageName == null || (appCombo.getItems().indexOf(oldPackageName) < 0)) {
// there is no such item
- selectAppCombo(0);
+ selectAppCombo(0);
} else {
- appCombo.setText(oldPackageName);
+ //appCombo.setText(oldPackageName);
}
}
TargetData target = SettingDataManager.INSTANCE.getTarget(null);
String preSelectedTemplate = target.getSelectedTemplate().getName();
- // TODO : redefine custom template usage
- // template change
if (!preSelectedTemplate.equals(toggleButton.getText())) {
Template template = Template.getTemplate(toggleButton.getText());
target.setSelectedTemplate(template);
protected DAPopupMenu popupMenu = null;
protected Point mousePoint = new Point(0, 0);
-
+
protected int totalColumnSize = 0;
- private int itemHeightSize = 19;
+
+ private int itemHeightSize = 16;
- protected RangeDataManager rangeDataManager = RangeDataManager
- .getInstance();
-
+ protected RangeDataManager rangeDataManager = RangeDataManager.getInstance();
+
protected static final Image filterImg = ImageResources.COLUMN_FILTER_NORMAL;
protected static final int filterImgOffset = 12;