package org.tizen.dynamicanalyzer.widgets.button.toggle;\r
\r
import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.graphics.Color;\r
import org.eclipse.swt.graphics.Image;\r
import org.eclipse.swt.widgets.Composite;\r
import org.eclipse.swt.widgets.Event;\r
addListeners();\r
}\r
\r
+ public DACustomToggleButton(Composite parent, Color normalStart,\r
+ Color normalEnd, Color pushStart, Color pushEnd, Color hoverStart,\r
+ Color hoverEnd, Color disableStart, Color disableEnd,\r
+ Color toggleStart, Color toggleEnd) {\r
+ this(parent, SWT.NONE);\r
+ attr.setColor(0, normalStart);\r
+ attr.setColor(1, normalEnd);\r
+ attr.setColor(2, pushStart);\r
+ attr.setColor(3, pushEnd);\r
+ attr.setColor(4, hoverStart);\r
+ attr.setColor(5, hoverEnd);\r
+ attr.setColor(6, disableStart);\r
+ attr.setColor(7, disableEnd);\r
+ attr.setColor(8, toggleStart);\r
+ attr.setColor(9, toggleEnd);\r
+ attr.setDrawType(TYPE_GRADATION);\r
+ }\r
+\r
public void setToggled(boolean toggled) {\r
if (!toggleByButton) {\r
toggle = toggled;\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<BaseLogCenter xmlns="org.tizen.dynamicanalyzer">
- <id>7</id>
- <name>image</name>
- <totalColumnCount>16</totalColumnCount>
- <customColumn>false</customColumn>
-
- <ColumnName>Rid</ColumnName>
- <ColumnName>ID</ColumnName>
- <ColumnName>SeqNumber</ColumnName>
- <ColumnName>APIName</ColumnName>
- <ColumnName>Time</ColumnName>
-
- <ColumnName>Pid</ColumnName>
- <ColumnName>Tid</ColumnName>
- <ColumnName>InputParam</ColumnName>
- <ColumnName>Return</ColumnName>
- <ColumnName>PCAddr</ColumnName>
- <!-- 10 -->
- <ColumnName>Error</ColumnName>
- <ColumnName>InternalCall</ColumnName>
- <ColumnName>CallerPCAddr</ColumnName>
- <ColumnName>Size</ColumnName>
- <ColumnName>APIType</ColumnName>
-
- <ColumnName>Reserved</ColumnName>
-
- <type>INTEGER</type>
- <type>INTEGER</type>
- <type>INTEGER PRIMARY KEY NOT NULL</type>
- <type>TEXT</type>
- <type>INTEGER</type>
-
- <type>INTEGER</type>
- <type>INTEGER</type>
- <type>TEXT</type>
- <type>TEXT</type>
- <type>INTEGER</type>
-
- <type>INTEGER</type>
- <type>INTEGER</type>
- <type>INTEGER</type>
- <type>INTEGER</type>
- <type>INTEGER</type>
-
- <type>TEXT</type>
-
-
- <ColumnSize>0</ColumnSize>
- <ColumnSize>0</ColumnSize>
- <ColumnSize>0</ColumnSize>
- <ColumnSize>0</ColumnSize>
- <ColumnSize>0</ColumnSize>
-
-
- <ColumnOrder>0</ColumnOrder>
- <ColumnOrder>1</ColumnOrder>
- <ColumnOrder>2</ColumnOrder>
- <ColumnOrder>3</ColumnOrder>
- <ColumnOrder>4</ColumnOrder>
-
- <ColumnOrder>5</ColumnOrder>
- <ColumnOrder>6</ColumnOrder>
- <ColumnOrder>7</ColumnOrder>
- <ColumnOrder>8</ColumnOrder>
- <ColumnOrder>9</ColumnOrder>
-
- <ColumnOrder>10</ColumnOrder>
- <ColumnOrder>11</ColumnOrder>
- <ColumnOrder>12</ColumnOrder>
- <ColumnOrder>13</ColumnOrder>
- <ColumnOrder>14</ColumnOrder>
-
- <ColumnOrder>15</ColumnOrder>
-
-
- <ColumnVisibility>false</ColumnVisibility>
- <ColumnVisibility>false</ColumnVisibility>
- <ColumnVisibility>true</ColumnVisibility>
- <ColumnVisibility>true</ColumnVisibility>
- <ColumnVisibility>true</ColumnVisibility>
-
- <ColumnVisibility>true</ColumnVisibility>
- <ColumnVisibility>true</ColumnVisibility>
- <ColumnVisibility>true</ColumnVisibility>
- <ColumnVisibility>true</ColumnVisibility>
- <ColumnVisibility>false</ColumnVisibility>
-
- <ColumnVisibility>true</ColumnVisibility>
- <ColumnVisibility>true</ColumnVisibility>
- <ColumnVisibility>false</ColumnVisibility>
- <ColumnVisibility>false</ColumnVisibility>
- <ColumnVisibility>false</ColumnVisibility>
-
- <ColumnVisibility>false</ColumnVisibility>
-
- <TableColumnName>Row Id</TableColumnName>
- <TableColumnName>ID</TableColumnName>
- <TableColumnName>#</TableColumnName>
- <TableColumnName>API name</TableColumnName>
- <TableColumnName>Time</TableColumnName>
-
- <TableColumnName>Process id</TableColumnName>
- <TableColumnName>Thread id</TableColumnName>
- <TableColumnName>Input parm</TableColumnName>
- <TableColumnName>Return</TableColumnName>
- <TableColumnName>PC Addr</TableColumnName>
-
- <TableColumnName>Errno</TableColumnName>
- <TableColumnName>Internal Call</TableColumnName>
- <TableColumnName>Caller PC Address</TableColumnName>
- <TableColumnName>Size</TableColumnName>
- <TableColumnName>API type</TableColumnName>
-
- <TableColumnName>Reserved</TableColumnName>
-</BaseLogCenter>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<BaseLogCenter xmlns="org.tizen.dynamicanalyzer">
+ <id>6</id>
+ <name>scene</name>
+ <totalColumnCount>20</totalColumnCount>
+ <customColumn>false</customColumn>
+
+ <ColumnName>Rid</ColumnName>
+ <ColumnName>ID</ColumnName>
+ <ColumnName>SeqNumber</ColumnName>
+ <ColumnName>APIName</ColumnName>
+ <ColumnName>Time</ColumnName>
+
+ <ColumnName>Pid</ColumnName>
+ <ColumnName>Tid</ColumnName>
+ <ColumnName>InputParam</ColumnName>
+ <ColumnName>Return</ColumnName>
+ <ColumnName>PCAddr</ColumnName>
+ <!-- 10 -->
+ <ColumnName>Error</ColumnName>
+ <ColumnName>InternalCall</ColumnName>
+ <ColumnName>CallerPCAddr</ColumnName>
+ <ColumnName>SceneName</ColumnName>
+ <ColumnName>FormName</ColumnName>
+
+ <ColumnName>FormPointer</ColumnName>
+ <ColumnName>PanelName</ColumnName>
+ <ColumnName>PanelPointer</ColumnName>
+ <ColumnName>Direction</ColumnName>
+ <ColumnName>Reserved</ColumnName>
+
+ <type>INTEGER</type>
+ <type>INTEGER</type>
+ <type>INTEGER PRIMARY KEY NOT NULL</type>
+ <type>TEXT</type>
+ <type>INTEGER</type>
+
+ <type>INTEGER</type>
+ <type>TEXT</type>
+ <type>TEXT</type>
+ <type>TEXT</type>
+ <type>TEXT</type>
+
+ <type>INTEGER</type>
+ <type>INTEGER</type>
+ <type>INTEGER</type>
+ <type>TEXT</type>
+ <type>TEXT</type>
+
+ <type>INTEGER</type>
+ <type>TEXT</type>
+ <type>INTEGER</type>
+ <type>INTEGER</type>
+ <type>TEXT</type>
+
+ <ColumnSize>100</ColumnSize>
+ <ColumnSize>0</ColumnSize>
+ <ColumnSize>80</ColumnSize>
+ <ColumnSize>0</ColumnSize>
+
+
+ <ColumnOrder>0</ColumnOrder>
+ <ColumnOrder>1</ColumnOrder>
+ <ColumnOrder>2</ColumnOrder>
+ <ColumnOrder>3</ColumnOrder>
+ <ColumnOrder>4</ColumnOrder>
+
+ <ColumnOrder>5</ColumnOrder>
+ <ColumnOrder>6</ColumnOrder>
+ <ColumnOrder>7</ColumnOrder>
+ <ColumnOrder>8</ColumnOrder>
+ <ColumnOrder>9</ColumnOrder>
+
+ <ColumnOrder>10</ColumnOrder>
+ <ColumnOrder>11</ColumnOrder>
+ <ColumnOrder>12</ColumnOrder>
+ <ColumnOrder>13</ColumnOrder>
+ <ColumnOrder>14</ColumnOrder>
+
+ <ColumnOrder>15</ColumnOrder>
+ <ColumnOrder>16</ColumnOrder>
+ <ColumnOrder>17</ColumnOrder>
+ <ColumnOrder>18</ColumnOrder>
+ <ColumnOrder>19</ColumnOrder>
+
+
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+
+
+ <TableColumnName>Row Id</TableColumnName>
+ <TableColumnName>ID</TableColumnName>
+ <TableColumnName>#</TableColumnName>
+ <TableColumnName>API name</TableColumnName>
+ <TableColumnName>Time</TableColumnName>
+
+ <TableColumnName>Process id</TableColumnName>
+ <TableColumnName>Thread id</TableColumnName>
+ <TableColumnName>Input parm</TableColumnName>
+ <TableColumnName>Return</TableColumnName>
+ <TableColumnName>PC Addr</TableColumnName>
+
+ <TableColumnName>Errno</TableColumnName>
+ <TableColumnName>Internal call</TableColumnName>
+ <TableColumnName>Caller PCaddr</TableColumnName>
+ <TableColumnName>Scene name</TableColumnName>
+ <TableColumnName>Form name</TableColumnName>
+
+ <TableColumnName>Form pointer</TableColumnName>
+ <TableColumnName>Panel name</TableColumnName>
+ <TableColumnName>Panel pointer</TableColumnName>
+ <TableColumnName>Direction</TableColumnName>
+ <TableColumnName>Reserved</TableColumnName>
+
+</BaseLogCenter>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<BaseLogCenter xmlns="org.tizen.dynamicanalyzer">
+ <id>7</id>
+ <name>screenshot</name>
+ <totalColumnCount>15</totalColumnCount>
+ <customColumn>false</customColumn>
+
+ <ColumnName>Rid</ColumnName>
+ <ColumnName>ID</ColumnName>
+ <ColumnName>SeqNumber</ColumnName>
+ <ColumnName>APIName</ColumnName>
+ <ColumnName>Time</ColumnName>
+
+ <ColumnName>Pid</ColumnName>
+ <ColumnName>Tid</ColumnName>
+ <ColumnName>InputParam</ColumnName>
+ <ColumnName>Return</ColumnName>
+ <ColumnName>PCAddr</ColumnName>
+ <!-- 10 -->
+ <ColumnName>Error</ColumnName>
+ <ColumnName>InternalCall</ColumnName>
+ <ColumnName>CallerPCAddr</ColumnName>
+ <ColumnName>ImageFilePath</ColumnName>
+ <ColumnName>Reserved</ColumnName>
+
+ <type>INTEGER</type>
+ <type>INTEGER</type>
+ <type>INTEGER PRIMARY KEY NOT NULL</type>
+ <type>TEXT</type>
+ <type>INTEGER</type>
+
+ <type>INTEGER</type>
+ <type>TEXT</type>
+ <type>TEXT</type>
+ <type>TEXT</type>
+ <type>TEXT</type>
+
+ <type>INTEGER</type>
+ <type>INTEGER</type>
+ <type>INTEGER</type>
+ <type>TEXT</type>
+ <type>TEXT</type>
+
+ <ColumnSize>100</ColumnSize>
+ <ColumnSize>0</ColumnSize>
+ <ColumnSize>80</ColumnSize>
+ <ColumnSize>0</ColumnSize>
+
+
+ <ColumnOrder>0</ColumnOrder>
+ <ColumnOrder>1</ColumnOrder>
+ <ColumnOrder>2</ColumnOrder>
+ <ColumnOrder>3</ColumnOrder>
+ <ColumnOrder>4</ColumnOrder>
+
+ <ColumnOrder>5</ColumnOrder>
+ <ColumnOrder>6</ColumnOrder>
+ <ColumnOrder>7</ColumnOrder>
+ <ColumnOrder>8</ColumnOrder>
+ <ColumnOrder>9</ColumnOrder>
+
+ <ColumnOrder>10</ColumnOrder>
+ <ColumnOrder>11</ColumnOrder>
+ <ColumnOrder>12</ColumnOrder>
+ <ColumnOrder>13</ColumnOrder>
+ <ColumnOrder>14</ColumnOrder>
+
+
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+
+ <TableColumnName>Row Id</TableColumnName>
+ <TableColumnName>ID</TableColumnName>
+ <TableColumnName>#</TableColumnName>
+ <TableColumnName>API name</TableColumnName>
+ <TableColumnName>Time</TableColumnName>
+
+ <TableColumnName>Process id</TableColumnName>
+ <TableColumnName>Thread id</TableColumnName>
+ <TableColumnName>Input parm</TableColumnName>
+ <TableColumnName>Return</TableColumnName>
+ <TableColumnName>PC Addr</TableColumnName>
+
+ <TableColumnName>Errno</TableColumnName>
+ <TableColumnName>Internal Call</TableColumnName>
+ <TableColumnName>CallerPCAddr</TableColumnName>
+ <TableColumnName>ImageFilePath</TableColumnName>
+ <TableColumnName>Reserved</TableColumnName>
+
+</BaseLogCenter>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<BaseLogCenter xmlns="org.tizen.dynamicanalyzer">
+ <id>3</id>
+ <name>ui_control</name>
+ <totalColumnCount>18</totalColumnCount>
+ <customColumn>false</customColumn>
+
+ <ColumnName>Rid</ColumnName>
+ <ColumnName>ID</ColumnName>
+ <ColumnName>SeqNumber</ColumnName>
+ <ColumnName>APIName</ColumnName>
+ <ColumnName>Time</ColumnName>
+
+ <ColumnName>Pid</ColumnName>
+ <ColumnName>Tid</ColumnName>
+ <ColumnName>InputParam</ColumnName>
+ <ColumnName>Return</ColumnName>
+ <ColumnName>PCAddr</ColumnName>
+ <!-- 10 -->
+ <ColumnName>Error</ColumnName>
+ <ColumnName>InternalCall</ColumnName>
+ <ColumnName>CallerPCAddr</ColumnName>
+ <ColumnName>ParentName</ColumnName>
+ <ColumnName>ParentPointer</ColumnName>
+
+ <ColumnName>ChildName</ColumnName>
+ <ColumnName>ChildPointer</ColumnName>
+ <ColumnName>Reserved</ColumnName>
+
+ <type>INTEGER</type>
+ <type>INTEGER</type>
+ <type>INTEGER PRIMARY KEY NOT NULL</type>
+ <type>TEXT</type>
+ <type>INTEGER</type>
+
+ <type>INTEGER</type>
+ <type>INTEGER</type>
+ <type>TEXT</type>
+ <type>TEXT</type>
+ <type>TEXT</type>
+
+ <type>INTEGER</type>
+ <type>INTEGER</type>
+ <type>INTEGER</type>
+ <type>TEXT</type>
+ <type>INTEGER</type>
+
+ <type>TEXT</type>
+ <type>INTEGER</type>
+ <type>TEXT</type>
+
+ <ColumnSize>0</ColumnSize>
+ <ColumnSize>0</ColumnSize>
+ <ColumnSize>0</ColumnSize>
+ <ColumnSize>0</ColumnSize>
+ <ColumnSize>0</ColumnSize>
+
+
+ <ColumnOrder>0</ColumnOrder>
+ <ColumnOrder>1</ColumnOrder>
+ <ColumnOrder>2</ColumnOrder>
+ <ColumnOrder>3</ColumnOrder>
+ <ColumnOrder>4</ColumnOrder>
+
+ <ColumnOrder>5</ColumnOrder>
+ <ColumnOrder>6</ColumnOrder>
+ <ColumnOrder>7</ColumnOrder>
+ <ColumnOrder>8</ColumnOrder>
+ <ColumnOrder>9</ColumnOrder>
+
+ <ColumnOrder>10</ColumnOrder>
+ <ColumnOrder>11</ColumnOrder>
+ <ColumnOrder>12</ColumnOrder>
+ <ColumnOrder>13</ColumnOrder>
+ <ColumnOrder>14</ColumnOrder>
+
+ <ColumnOrder>15</ColumnOrder>
+ <ColumnOrder>16</ColumnOrder>
+ <ColumnOrder>17</ColumnOrder>
+
+
+ <ColumnVisibility>false</ColumnVisibility>
+ <ColumnVisibility>false</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>false</ColumnVisibility>
+
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>false</ColumnVisibility>
+ <ColumnVisibility>false</ColumnVisibility>
+
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+
+
+ <TableColumnName>Row Id</TableColumnName>
+ <TableColumnName>ID</TableColumnName>
+ <TableColumnName>#</TableColumnName>
+ <TableColumnName>API name</TableColumnName>
+ <TableColumnName>Time</TableColumnName>
+
+ <TableColumnName>Process id</TableColumnName>
+ <TableColumnName>Thread id</TableColumnName>
+ <TableColumnName>Input parm</TableColumnName>
+ <TableColumnName>Return</TableColumnName>
+ <TableColumnName>PC Addr</TableColumnName>
+
+ <TableColumnName>Errno</TableColumnName>
+ <TableColumnName>Internal Call</TableColumnName>
+ <TableColumnName>Call PC Address</TableColumnName>
+ <TableColumnName>Parent name</TableColumnName>
+ <TableColumnName>Parent pointer</TableColumnName>
+
+ <TableColumnName>Child name</TableColumnName>
+ <TableColumnName>Child pointer</TableColumnName>
+ <TableColumnName>Reserved</TableColumnName>
+</BaseLogCenter>
\ No newline at end of file
<BaseLogCenter xmlns="org.tizen.dynamicanalyzer">
<id>3</id>
<name>ui_event</name>
- <totalColumnCount>17</totalColumnCount>
+ <totalColumnCount>20</totalColumnCount>
<customColumn>false</customColumn>
<ColumnName>Rid</ColumnName>
<ColumnName>Error</ColumnName>
<ColumnName>InternalCall</ColumnName>
<ColumnName>CallerPCAddr</ColumnName>
+ <ColumnName>EventType</ColumnName>
+ <ColumnName>DetailType</ColumnName>
+
<ColumnName>x</ColumnName>
<ColumnName>y</ColumnName>
-
- <ColumnName>eventType</ColumnName>
+ <ColumnName>info1</ColumnName>
+ <ColumnName>info2</ColumnName>
<ColumnName>Reserved</ColumnName>
<type>INTEGER</type>
<type>INTEGER</type>
<type>INTEGER</type>
+ <type>INTEGER</type>
+ <type>INTEGER</type>
+ <type>INTEGER</type>
<type>TEXT</type>
<ColumnSize>0</ColumnSize>
<ColumnOrder>0</ColumnOrder>
- <ColumnOrder>1</ColumnOrder>
- <ColumnOrder>2</ColumnOrder>
- <ColumnOrder>3</ColumnOrder>
- <ColumnOrder>4</ColumnOrder>
-
- <ColumnOrder>11</ColumnOrder>
- <ColumnOrder>12</ColumnOrder>
- <ColumnOrder>9</ColumnOrder>
- <ColumnOrder>13</ColumnOrder>
- <ColumnOrder>7</ColumnOrder>
-
- <ColumnOrder>8</ColumnOrder>
- <ColumnOrder>10</ColumnOrder>
- <ColumnOrder>5</ColumnOrder>
- <ColumnOrder>6</ColumnOrder>
- <ColumnOrder>14</ColumnOrder>
-
- <ColumnOrder>15</ColumnOrder>
- <ColumnOrder>16</ColumnOrder>
+ <ColumnOrder>1</ColumnOrder>
+ <ColumnOrder>2</ColumnOrder>
+ <ColumnOrder>3</ColumnOrder>
+ <ColumnOrder>4</ColumnOrder>
+
+ <ColumnOrder>5</ColumnOrder>
+ <ColumnOrder>6</ColumnOrder>
+ <ColumnOrder>7</ColumnOrder>
+ <ColumnOrder>8</ColumnOrder>
+ <ColumnOrder>9</ColumnOrder>
+
+ <ColumnOrder>10</ColumnOrder>
+ <ColumnOrder>11</ColumnOrder>
+ <ColumnOrder>12</ColumnOrder>
+ <ColumnOrder>13</ColumnOrder>
+ <ColumnOrder>14</ColumnOrder>
+
+ <ColumnOrder>15</ColumnOrder>
+ <ColumnOrder>16</ColumnOrder>
+ <ColumnOrder>17</ColumnOrder>
+ <ColumnOrder>18</ColumnOrder>
+ <ColumnOrder>19</ColumnOrder>
<ColumnVisibility>false</ColumnVisibility>
<ColumnVisibility>false</ColumnVisibility>
<ColumnVisibility>false</ColumnVisibility>
- <ColumnVisibility>false</ColumnVisibility>
- <ColumnVisibility>false</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>true</ColumnVisibility>
+ <ColumnVisibility>false</ColumnVisibility>
+ <ColumnVisibility>false</ColumnVisibility>
<TableColumnName>Row Id</TableColumnName>
<TableColumnName>Errno</TableColumnName>
<TableColumnName>Internal Call</TableColumnName>
<TableColumnName>Call PC Address</TableColumnName>
+ <TableColumnName>Event type</TableColumnName>
+ <TableColumnName>Detail type</TableColumnName>
+
<TableColumnName>X</TableColumnName>
<TableColumnName>Y</TableColumnName>
-
- <TableColumnName>Event type</TableColumnName>
+ <TableColumnName>Info1</TableColumnName>
+ <TableColumnName>Info2</TableColumnName>
<TableColumnName>Reserved</TableColumnName>
</BaseLogCenter>
\ No newline at end of file
public static final int ERROR_EXTENSION_FAIL = -1;\r
public static final int SUCCESS = 1;\r
public static final int ERROR_SAVE_FAIL = 0;\r
+ public static final int FAIL = -2;\r
\r
/* data size */\r
public static final int INSERT_DATA_PACKAGE_SIZE = 80;\r
}\r
\r
private void loadImageSet(Project p) {\r
- ResultSet rs = SqlManager.selectAllFromTable("image"); //$NON-NLS-1$\r
+ ResultSet rs = SqlManager.selectAllFromTable("screenshot"); //$NON-NLS-1$\r
if (null == rs) {\r
return;\r
}\r
public static final int LOG_USER_FUNCTION = 4;
public static final int LOG_RESOURCE = 5;
public static final int LOG_LIFECYCLE = 6;
- public static final int LOG_IMAGE = 7;
+ public static final int LOG_SNAPSHOT = 7;
public static final int LOG_DEVICE = 9;
public static final int LOG_SAMPLE = 11;
public static final int LOG_SYSTEM = 12;
}
}
- if (id == LogCenterConstants.LOG_IMAGE) {
+ if (id == LogCenterConstants.LOG_SNAPSHOT) {
ImageInfo imgInfo = new ImageInfo();
imgInfo.setSeq(input.get(LogCenterConstants.SEQUENCE_NUMBER_INDEX));
imgInfo.setTime(input.get(LogCenterConstants.TIME_INDEX));
buffer.add(messages[1]);
messageCount += 1;
break;
- case AnalyzerConstants.MSG_IMAGE: /* image : 6 */
+ case AnalyzerConstants.MSG_IMAGE: /* screenshot : 6 */
processImage(messages[1]);
break;
case AnalyzerConstants.MSG_TERMINATE: /* terminate : 7 */
--- /dev/null
+package org.tizen.dynamicanalyzer.model;
+
+import org.tizen.dynamicanalyzer.common.CommonConstants;
+
+public class FindProperty {
+ private boolean backward;
+ private boolean caseSensitive;
+ private boolean wholeWord;
+ private int index;
+ private String lastSearch;
+
+ public FindProperty() {
+ backward = false;
+ caseSensitive = false;
+ wholeWord = false;
+ index = -1;
+ lastSearch = CommonConstants.EMPTY;
+ }
+
+ public String getLastSearch() {
+ return lastSearch;
+ }
+
+ public void setLastSearch(String lastSearch) {
+ this.lastSearch = lastSearch;
+ }
+
+ public boolean isBackward() {
+ return backward;
+ }
+
+ public void setBackward(boolean backward) {
+ this.backward = backward;
+ }
+
+ public boolean isCaseSensitive() {
+ return caseSensitive;
+ }
+
+ public void setCaseSensitive(boolean caseSensitive) {
+ this.caseSensitive = caseSensitive;
+ }
+
+ public boolean isWholeWord() {
+ return wholeWord;
+ }
+
+ public void setWholeWord(boolean wholeWord) {
+ this.wholeWord = wholeWord;
+ }
+
+ public int getIndex() {
+ return index;
+ }
+
+ public void setIndex(int index) {
+ this.index = index;
+ }
+
+}
public class SnapshotData {
-
+ private final String SNAPSHOT = "snapshot";
private static SnapshotData snapshotData = new SnapshotData();
private List<SnapShotInfo> infos = new ArrayList<SnapShotInfo>();
}
private String query() {
- return "select * from image"; //$NON-NLS-1$
+ return "select * from " + SNAPSHOT; //$NON-NLS-1$
}
private String query(String min, String max) {
- return "select * from image where time <= " + max + " and time > " //$NON-NLS-1$ //$NON-NLS-2$
+ return "select * from " + SNAPSHOT + " where time <= " + max + " and time > " //$NON-NLS-1$ //$NON-NLS-2$
+ min + " ;"; //$NON-NLS-1$
}
return;
}
- LogCenter logc = AnalyzerManager.getLogCenterById(LogCenterConstants.LOG_IMAGE);
+ LogCenter logc = AnalyzerManager.getLogCenterById(LogCenterConstants.LOG_SNAPSHOT);
if (null == logc) {
return;
}
contents.setLayout(new FillLayout());
callstackTableComp = new CallstackTable(contents, SWT.NONE, SWT.SINGLE
| SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
+ callstackTableComp.setTableName("Callstack");
callstackTableComp.setColumns(columnNames);
callstackTableComp.setColumnSize(columnSizes);
callstackTableComp.setColumnVisibility(columnVisibility);
contents.setLayout(new FillLayout());
tableComp = new FailedApiTable(contents, SWT.NONE, SWT.SINGLE
| SWT.BORDER | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
+ tableComp.setTableName("Failed APIs");
tableComp.setComparator(new TableComparator());
tableComp.setSortTypes(sortTypes);
tableComp.setSourceColumns(sourceColumns);
public LeakTable(Composite parent, int compStyle, int tableStyle) {
super(parent, compStyle, tableStyle);
- setSelValueIndex(LeakData.LEAK_SEQ_INDEX);
+// setSelValueIndex(LeakData.LEAK_SEQ_INDEX);
tree.addListener(SWT.Expand, new Listener() {
contents.setBackground(ColorResources.WINDOW_BG_COLOR);
contents.setLayout(new FillLayout());
treeComp = new ProfilingTable(contents, SWT.NONE, SWT.SINGLE
- | SWT.BORDER | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
+ | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
/*** setTree set first!!! ***/
treeComp.setTree(true);
treeComp.setSortTypes(sortTypes);
public ProfilingTable(Composite parent, int compStyle, int tableStyle) {
super(parent, compStyle, tableStyle);
setComparator(new TreeDataComparator());
- setSelValueIndex(0);
+// setSelValueIndex(0);
comparator.setType(AnalyzerConstants.SORT_TYPE_NUM);
comparator.setColumn(2);
contents.setLayout(new FillLayout());
tableComp = new WarningTable(contents, SWT.NONE, SWT.SINGLE | SWT.BORDER
| SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
+ tableComp.setTableName("Warning List");
tableComp.setComparator(new TableComparator());
tableComp.setSortTypes(sortTypes);
tableComp.setSourceColumns(sourceColumns);
contents.setLayout(new FillLayout());
tableComp = new CallTraceTable(contents, SWT.NONE, SWT.MULTI
| SWT.BORDER | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
-
+ tableComp.setTableName("Calltrace"); // test
tableComp.setComparator(new TableComparator());
tableComp.setSortTypes(sortTypes);
tableComp.setSourceColumns(sourceColumns);
}
@Override
- public void dispose() {
- }
-
- @Override
public void parsingLogPackage(LogPackage logPack, int probeType) {
if (!isAbleToParse(logPack, LogCenterConstants.LOG_DEVICE)) {
return;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
-import org.tizen.dynamicanalyzer.common.DASelectionData;
-import org.tizen.dynamicanalyzer.listeners.TableTooltipListener;
import org.tizen.dynamicanalyzer.model.DAView;
import org.tizen.dynamicanalyzer.nl.UserInterfacePageLabels;
import org.tizen.dynamicanalyzer.resources.ColorResources;
import org.tizen.dynamicanalyzer.ui.file.FileApiListView;
import org.tizen.dynamicanalyzer.ui.summary.profiling.ProfilingData;
-import org.tizen.dynamicanalyzer.ui.summary.profiling.ProfilingTable;
import org.tizen.dynamicanalyzer.ui.widgets.ViewContainer;
-import org.tizen.dynamicanalyzer.ui.widgets.table.DATableComposite;
public class UserInterfaceControlListView extends DAView {
int tableStyle) {
super(parent, compStyle, tableStyle);
setComparator(new TreeDataComparator());
- setSelValueIndex(0);
+// setSelValueIndex(0);
comparator.setType(AnalyzerConstants.SORT_TYPE_NUM);
comparator.setColumn(2);
--- /dev/null
+/*
+ * Dynamic Analyzer
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Jooyoul Lee <jy.exe.lee@samsung.com>
+ * Juyoung Kim <j0.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ *
+ */
+
+package org.tizen.dynamicanalyzer.ui.widgets;
+
+import org.eclipse.nebula.widgets.grid.Grid;
+import org.eclipse.nebula.widgets.grid.GridItem;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
+import org.tizen.dynamicanalyzer.common.DesignConstants;
+import org.tizen.dynamicanalyzer.model.FindProperty;
+import org.tizen.dynamicanalyzer.resources.ColorResources;
+import org.tizen.dynamicanalyzer.ui.widgets.table.DATableComposite;
+import org.tizen.dynamicanalyzer.ui.widgets.table.DATreeComposite;
+import org.tizen.dynamicanalyzer.widgets.button.DACustomButton;
+import org.tizen.dynamicanalyzer.widgets.button.DACustomButtonClickEventListener;
+import org.tizen.dynamicanalyzer.widgets.button.toggle.DACustomToggleButton;
+
+public class FindDialog extends DAMessageBox {
+
+ private Text textBox = null;
+ private DAButton findButton = null;
+ private DACustomButton forwardButton = null;
+ private DACustomButton backwardButton = null;
+ private DACustomToggleButton caseButton = null;
+ private DACustomToggleButton wholeWordButton = null;
+
+ private FindProperty findProperty = null;
+
+ private Grid table = null;
+ private String viewName = null;
+ private Composite composite = null;
+
+ public FindDialog(Shell parentShell, Composite comp) {
+ super(parentShell);
+ if (comp instanceof DATableComposite) {
+ this.table = ((DATableComposite) comp).getTable();
+ viewName = ((DATableComposite) comp).getTableName();
+ } else if (comp instanceof DATreeComposite) {
+ this.table = ((DATreeComposite) comp).getTable();
+ viewName = ((DATreeComposite) comp).getTableName();
+ } else {
+ table = null;
+ }
+ this.composite = comp;
+ findProperty = DATableComposite.getFindProferty();
+ findProperty.setIndex(table.getSelectionIndex());
+ }
+
+ protected int run() {
+ if (null == table) {
+ return AnalyzerConstants.FAIL;
+ }
+ shell.setLayout(new FormLayout());
+ shell.setSize(340, 130);
+ shell.setBackground(ColorResources.DIALOG_BG_UPPER);
+ shell.setText("Find from " + viewName + " table");
+
+ textBox = new Text(shell, SWT.SINGLE);
+ FormData data = new FormData();
+ data.top = new FormAttachment(0, 11);
+ data.left = new FormAttachment(0, 9);
+ data.height = 22;
+ data.width = 200;
+ textBox.setLayoutData(data);
+ textBox.setBackground(ColorResources.VIEW_BG_COLOR);
+ textBox.addKeyListener(keyListener);
+ textBox.setText(findProperty.getLastSearch());
+ textBox.setSelection(0, findProperty.getLastSearch().length());
+
+ findButton = new DAButton(shell, SWT.NONE);
+ data = new FormData();
+ data.top = new FormAttachment(0, 11);
+ data.left = new FormAttachment(textBox, 9);
+ data.height = 25;
+ data.width = DesignConstants.DA_BUTTON_WIDTH;
+ findButton.setLayoutData(data);
+ findButton.setText("Find");
+ findButton.addClickListener(fnidButtonListener);
+
+ Label directionLabel = new Label(shell, SWT.TRANSPARENT);
+ data = new FormData();
+ data.top = new FormAttachment(textBox, 11);
+ data.left = new FormAttachment(0, 15);
+ data.height = 20;
+ data.width = DesignConstants.DA_BUTTON_WIDTH;
+ directionLabel.setLayoutData(data);
+ directionLabel.setText("Direction :");
+ directionLabel.setBackground(ColorResources.DIALOG_BG_UPPER);
+
+ forwardButton = new DACustomButton(shell,
+ ColorResources.TAB_NORMAL_COLOR_START,
+ ColorResources.TAB_NORMAL_COLOR_END,
+ ColorResources.TAB_PUSH_COLOR_START,
+ ColorResources.TAB_PUSH_COLOR_END,
+ ColorResources.TAB_HOVER_COLOR_START,
+ ColorResources.TAB_HOVER_COLOR_END,
+ ColorResources.TAB_SELECTED_COLOR_START,
+ ColorResources.TAB_SELECTED_COLOR_END);
+ data = new FormData();
+ data.top = new FormAttachment(textBox, 10);
+ data.left = new FormAttachment(directionLabel, 0);
+ data.height = 20;
+ data.width = DesignConstants.DA_BUTTON_WIDTH;
+ forwardButton.setLayoutData(data);
+ forwardButton.setText("Forward");
+ forwardButton.setEnabled(findProperty.isBackward());
+ forwardButton.addClickListener(forwardButtonListener);
+
+ backwardButton = new DACustomButton(shell,
+ ColorResources.TAB_NORMAL_COLOR_START,
+ ColorResources.TAB_NORMAL_COLOR_END,
+ ColorResources.TAB_PUSH_COLOR_START,
+ ColorResources.TAB_PUSH_COLOR_END,
+ ColorResources.TAB_HOVER_COLOR_START,
+ ColorResources.TAB_HOVER_COLOR_END,
+ ColorResources.TAB_SELECTED_COLOR_START,
+ ColorResources.TAB_SELECTED_COLOR_END);
+ data = new FormData();
+ data.top = new FormAttachment(textBox, 10);
+ data.left = new FormAttachment(forwardButton, 1);
+ data.height = 20;
+ data.width = DesignConstants.DA_BUTTON_WIDTH;
+ backwardButton.setLayoutData(data);
+ backwardButton.setText("Backward");
+ backwardButton.setEnabled(!findProperty.isBackward());
+ backwardButton.addClickListener(backwardButtonListener);
+
+ Label optionLabel = new Label(shell, SWT.TRANSPARENT);
+ data = new FormData();
+ data.top = new FormAttachment(directionLabel, 5);
+ data.left = new FormAttachment(0, 15);
+ data.height = 20;
+ data.width = DesignConstants.DA_BUTTON_WIDTH;
+ optionLabel.setLayoutData(data);
+ optionLabel.setText("Option ;");
+ optionLabel.setBackground(ColorResources.DIALOG_BG_UPPER);
+
+ caseButton = new DACustomToggleButton(shell,
+ ColorResources.TAB_NORMAL_COLOR_START,
+ ColorResources.TAB_NORMAL_COLOR_END,
+ ColorResources.TAB_PUSH_COLOR_START,
+ ColorResources.TAB_PUSH_COLOR_END,
+ ColorResources.TAB_HOVER_COLOR_START,
+ ColorResources.TAB_HOVER_COLOR_END,
+ ColorResources.BUTTON_DISABLE_COLOR_START,
+ ColorResources.BUTTON_DISABLE_COLOR_END,
+ ColorResources.TAB_SELECTED_COLOR_START,
+ ColorResources.TAB_SELECTED_COLOR_END);
+ data = new FormData();
+ data.top = new FormAttachment(forwardButton, 5);
+ data.left = new FormAttachment(optionLabel, 0);
+ data.height = 20;
+ data.width = DesignConstants.DA_BUTTON_WIDTH;
+ caseButton.setLayoutData(data);
+ caseButton.setText("Case Sensitive");
+ caseButton.addClickListener(caseButtonListener);
+ caseButton.setToggled(findProperty.isCaseSensitive());
+
+ wholeWordButton = new DACustomToggleButton(shell,
+ ColorResources.TAB_NORMAL_COLOR_START,
+ ColorResources.TAB_NORMAL_COLOR_END,
+ ColorResources.TAB_PUSH_COLOR_START,
+ ColorResources.TAB_PUSH_COLOR_END,
+ ColorResources.TAB_HOVER_COLOR_START,
+ ColorResources.TAB_HOVER_COLOR_END,
+ ColorResources.BUTTON_DISABLE_COLOR_START,
+ ColorResources.BUTTON_DISABLE_COLOR_END,
+ ColorResources.TAB_SELECTED_COLOR_START,
+ ColorResources.TAB_SELECTED_COLOR_END);
+ data = new FormData();
+ data.top = new FormAttachment(forwardButton, 5);
+ data.left = new FormAttachment(caseButton, 1);
+ data.height = 20;
+ data.width = DesignConstants.DA_BUTTON_WIDTH;
+ wholeWordButton.setLayoutData(data);
+ wholeWordButton.setText("Whole Word");
+ wholeWordButton.addClickListener(wholeWordButtonListener);
+ wholeWordButton.setToggled(findProperty.isWholeWord());
+
+ return result;
+ }
+
+ private DACustomButtonClickEventListener fnidButtonListener = new DACustomButtonClickEventListener() {
+
+ @Override
+ public void handleClickEvent(DACustomButton button) {
+ findProperty.setLastSearch(textBox.getText());
+ if (executeFindCommand()) {
+ result = AnalyzerConstants.SUCCESS;
+ }
+ }
+ };
+
+ private KeyListener keyListener = new KeyListener() {
+
+ @Override
+ public void keyReleased(KeyEvent e) {
+ if (null != textBox.getText() && !textBox.getText().isEmpty()) {
+ findButton.setEnabled(true);
+ } else {
+ findButton.setEnabled(false);
+ }
+ }
+
+ @Override
+ public void keyPressed(KeyEvent e) {
+
+ }
+ };
+
+ private DACustomButtonClickEventListener forwardButtonListener = new DACustomButtonClickEventListener() {
+
+ @Override
+ public void handleClickEvent(DACustomButton button) {
+ findProperty.setBackward(false);
+ if (!backwardButton.isEnabled()) {
+ backwardButton.setEnabled(true);
+ }
+ forwardButton.setEnabled(false);
+ }
+ };
+
+ private DACustomButtonClickEventListener backwardButtonListener = new DACustomButtonClickEventListener() {
+
+ @Override
+ public void handleClickEvent(DACustomButton button) {
+ findProperty.setBackward(true);
+ if (!forwardButton.isEnabled()) {
+ forwardButton.setEnabled(true);
+ }
+ backwardButton.setEnabled(false);
+ }
+ };
+
+ private DACustomButtonClickEventListener caseButtonListener = new DACustomButtonClickEventListener() {
+
+ @Override
+ public void handleClickEvent(DACustomButton button) {
+ findProperty.setCaseSensitive(!findProperty.isCaseSensitive());
+ caseButton.setToggled(findProperty.isCaseSensitive());
+ }
+ };
+
+ private DACustomButtonClickEventListener wholeWordButtonListener = new DACustomButtonClickEventListener() {
+
+ @Override
+ public void handleClickEvent(DACustomButton button) {
+ findProperty.setWholeWord(!findProperty.isWholeWord());
+ wholeWordButton.setToggled(findProperty.isWholeWord());
+ }
+ };
+
+ private boolean executeFindCommand() {
+
+ int index = findProperty.getIndex();
+ GridItem[] items = table.getItems();
+ int itemCount = items.length;
+
+ if (itemCount != 0) {
+ if (findProperty.isBackward()) {
+ index = (index - 1 < 0) ? itemCount - 1 : index - 1;
+ } else {
+
+ index = (index + 1 > itemCount - 1) ? 0 : index + 1;
+ }
+ int findIndex = -1;
+ findProperty.setIndex(index);
+ if (composite instanceof DATableComposite) {
+ findIndex = ((DATableComposite) composite).search(findProperty);
+ } else if (composite instanceof DATreeComposite) {
+ findIndex = ((DATreeComposite) composite).search(findProperty);
+ } else {
+ return false;
+ }
+ findProperty.setIndex(findIndex);
+ return true;
+ }
+ return false;
+ }
+}
import org.eclipse.nebula.widgets.grid.GridColumn;
import org.eclipse.nebula.widgets.grid.GridItem;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Shell;
+import org.tizen.dynamicanalyzer.common.CommonConstants;
import org.tizen.dynamicanalyzer.listeners.TableTooltipListener;
import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
+import org.tizen.dynamicanalyzer.model.FindProperty;
import org.tizen.dynamicanalyzer.model.LogCenter;
import org.tizen.dynamicanalyzer.model.TableInput;
import org.tizen.dynamicanalyzer.resources.ColorResources;
import org.tizen.dynamicanalyzer.resources.FontResources;
+import org.tizen.dynamicanalyzer.ui.widgets.FindDialog;
+import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
public abstract class DATableComposite extends Composite {
+ // for find
+ private String tableName = CommonConstants.EMPTY;
+ private DATableComposite me = null;
+ private static FindProperty findProferty;
+ private boolean ctrlPressed = false;
+
protected Grid table;
protected int itemCount = 0;
protected List<Integer> selectionIndex;
}
});
+
+ table.addKeyListener(new KeyListener() {
+
+ @Override
+ public void keyReleased(KeyEvent e) {
+
+ if (SWT.CTRL == e.keyCode) {
+ System.out.println("ctrl released!");
+ ctrlPressed = false;
+ } else if (e.keyCode == 102) { // f
+ if (ctrlPressed) {
+ ctrlPressed = false;
+ Shell shell = AnalyzerUtil.getWorkbenchWindow()
+ .getShell();
+ FindDialog dialog = new FindDialog(shell, me);
+ dialog.open();
+ System.out.println("ctrl + f released!!");
+ // FIXME: debug
+ }
+ }
+
+ }
+
+ @Override
+ public void keyPressed(KeyEvent e) {
+ if (SWT.CTRL == e.keyCode) {
+ ctrlPressed = true;
+ }
+ }
+ });
+
+ me = this;
}
public void setTree(boolean tree) {
return selectionIndex;
}
- public int getItemCount() {
- if (0 == itemCount) {
- Rectangle rect = table.getClientArea();
- int itemHeight = table.getItemHeight();
- itemCount = (rect.height - table.getHeaderHeight()) / itemHeight
- - 1;
- }
- return itemCount;
- }
-
public void setSourceView(boolean toggle) {
if (null != tableListener) {
tableListener.setSourceButtonToggle(toggle);
}
public void clear() {
+ getSelectionIndex().clear();
+ getSelections().clear();
table.removeAll();
}
getSelectionIndex().clear();
getSelections().clear();
table.deselectAll();
- // updateTable();
+ }
+
+ private int getScrollSelectionIndex(int selection) {
+ int size = table.getVerticalBar().getThumb() / 2;
+ int output = selection - size;
+
+ output = (output < 0) ? 0 : output;
+ return output;
+ }
+
+ public int search(FindProperty findProperty) {
+ GridItem[] items = table.getItems();
+ int size = items.length;
+ boolean next = !findProperty.isBackward();
+ int start = findProperty.getIndex();
+ setFindProferty(findProperty);
+
+ // forward
+ if (next) {
+ for (int i = start; i < size; i++) {
+ if (checkText(findProperty, items[i])) {
+ table.getVerticalBar().setSelection(
+ getScrollSelectionIndex(i));
+ table.setSelection(i);
+ updateTable();
+ return i;
+ }
+ }
+ // can't find
+ for (int i = 0; i < start; i++) {
+ if (checkText(findProperty, items[i])) {
+ table.getVerticalBar().setSelection(
+ getScrollSelectionIndex(i));
+ table.setSelection(i);
+ updateTable();
+ return i;
+ }
+ }
+ } else { // back
+ for (int i = start; i >= 0; i--) {
+ if (checkText(findProperty, items[i])) {
+ table.getVerticalBar().setSelection(
+ getScrollSelectionIndex(i));
+ table.setSelection(i);
+ updateTable();
+ return i;
+ }
+ }
+
+ for (int i = size - 1; i > start; i--) {
+ if (checkText(findProperty, items[i])) {
+ table.getVerticalBar().setSelection(
+ getScrollSelectionIndex(i));
+ table.setSelection(i);
+ updateTable();
+ return i;
+ }
+ }
+ }
+ table.deselectAll();
+ return -1;
+ }
+
+ private boolean checkText(FindProperty findProperty, GridItem items) {
+ GridColumn[] columns = table.getColumns();
+ int columnSize = columns.length;
+ String input = findProperty.getLastSearch();
+ boolean wholeWord = findProperty.isWholeWord();
+ boolean caseSensitive = findProperty.isCaseSensitive();
+
+ for (int ii = 0; ii < columnSize; ii++) {
+ String text = items.getText(ii);
+
+ if (!caseSensitive) {
+ text = text.toUpperCase();
+ input = input.toUpperCase();
+ }
+
+ if (!wholeWord) {
+ if (text.contains(input)) {
+ return true;
+ }
+ } else {
+ if (0 == input.compareTo(text)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public void setTableName(String name) {
+ tableName = name;
+ }
+
+ public String getTableName() {
+ return tableName;
+ }
+
+ public static FindProperty getFindProferty() {
+ if (null == findProferty) {
+ findProferty = new FindProperty();
+ }
+ return findProferty;
+ }
+
+ public static void setFindProferty(FindProperty findProferty) {
+ DATableComposite.findProferty = findProferty;
}
}
import org.eclipse.nebula.widgets.grid.GridColumn;
import org.eclipse.nebula.widgets.grid.GridItem;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Shell;
+import org.tizen.dynamicanalyzer.common.CommonConstants;
import org.tizen.dynamicanalyzer.listeners.TableTooltipListener;
-import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
+import org.tizen.dynamicanalyzer.model.FindProperty;
import org.tizen.dynamicanalyzer.model.LogCenter;
import org.tizen.dynamicanalyzer.model.TreeInput;
import org.tizen.dynamicanalyzer.resources.ColorResources;
import org.tizen.dynamicanalyzer.resources.FontResources;
+import org.tizen.dynamicanalyzer.ui.widgets.FindDialog;
+import org.tizen.dynamicanalyzer.utils.AnalyzerUtil;
public abstract class DATreeComposite extends Composite {
+ // for find
+ private String treeName = CommonConstants.EMPTY;
+ private DATreeComposite me = null;
+ private static FindProperty findProferty;
+ private boolean ctrlPressed = false;
+
protected Grid tree;
protected int itemCount = 0;
protected List<Integer> selectionIndex;
protected LogCenter logc;
protected TableTooltipListener tableListener;
protected boolean treeTable = false;
- protected int selValueIndex = LogCenterConstants.SEQUENCE_NUMBER_INDEX;
- protected String focusSeq = null;
+ // protected int selValueIndex = LogCenterConstants.SEQUENCE_NUMBER_INDEX;
+ // protected String focusSeq = null;
protected DefaultTableComparator comparator = null;
protected int[] sortTypes = null;
int gridItemCount = -1;
int selIndex = 0;
+ private List<String> selList = null;
+
protected HashMap<Integer, Boolean> expandMap = null;
protected HashMap<String, GridItem> gridMap = null;
tree.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
+ getSelList().clear();
GridItem[] ti = ((Grid) e.widget).getSelection();
- GridItem focusedItem = ((Grid) e.widget).getFocusItem();
- if (null != focusedItem) {
- DATableDataFormat td = (DATableDataFormat) focusedItem
- .getData();
- if (null == td) {
- return;
- }
- focusSeq = td.getSelectionKey();
- }
- if (selValueIndex < 0 || null == ti || ti.length == 0) {
- return;
- }
+ // GridItem focusedItem = ((Grid) e.widget).getFocusItem();
+ // if (null != focusedItem) {
+ // DATableDataFormat td = (DATableDataFormat) focusedItem
+ // .getData();
+ // if (null == td) {
+ // return;
+ // }
+ // focusSeq = td.getSelectionKey();
+ // }
+ // if (selValueIndex < 0 || null == ti || ti.length == 0) {
+ // return;
+ // }
int size = ti.length;
HashMap<String, String> sel = getSelections();
sel.clear();
+
for (int i = 0; i < size; i++) {
DATableDataFormat tableData = (DATableDataFormat) ti[i]
.getData();
- if (null == tableData) {
- return;
- }
- String seq = tableData.getSelectionKey();
- if (null != seq && !seq.isEmpty()) {
- sel.put(seq, seq);
+ if (null != tableData) {
+ String seq = tableData.getSelectionKey();
+ if (null != seq && !seq.isEmpty()) {
+ sel.put(seq, seq);
+ getSelList().add(seq);
+ }
}
}
}
}
});
+ tree.addKeyListener(new KeyListener() {
+
+ @Override
+ public void keyReleased(KeyEvent e) {
+
+ if (SWT.CTRL == e.keyCode) {
+ ctrlPressed = false;
+ } else if (e.keyCode == 102) { // f
+ if (ctrlPressed) {
+ ctrlPressed = false;
+ Shell shell = AnalyzerUtil.getWorkbenchWindow()
+ .getShell();
+ FindDialog dialog = new FindDialog(shell, me);
+ dialog.open();
+ // FIXME: debug
+ }
+ }
+ }
+
+ @Override
+ public void keyPressed(KeyEvent e) {
+ if (SWT.CTRL == e.keyCode) {
+ ctrlPressed = true;
+ }
+ }
+ });
+
+ me = this;
}
public void setTree(boolean tree) {
return gridMap;
}
+ private List<String> getSelList() {
+ if (null == selList) {
+ selList = new ArrayList<String>();
+ }
+ return selList;
+ }
+
public void setTableToolTipListener(TableTooltipListener tableListener) {
this.tableListener = tableListener;
if (null == tableListener) {
public void updateTree() {
selections = tree.getSelection();
selSeqs = new ArrayList<String>();
+ // selSeqs.addAll(getSelections().values());
for (int i = 0; i < selections.length; i++) {
DATableDataFormat tableData = (DATableDataFormat) selections[i]
.getData();
List<TreeInput> input = makeTreeInput();
createTree(input, tree);
- for (int i = 0; i < sels.length; i++) {
- System.out.println(sels[i]);
- }
- tree.setSelection(sels);
+// tree.setSelection(sels);
+ tree.select(sels);
+// setSelections();
}
+// private void setSelections() {
+// if (tree.isFocusControl()) {
+// GridItem[] items = tree.getItems();
+// List<String> selList = getSelList();
+// int size = items.length;
+// int selSize = selList.size();
+//
+// for (int i = 0; i < size; i++) {
+// DATableDataFormat tableData = (DATableDataFormat) items[i]
+// .getData();
+// String key = tableData.getSelectionKey();
+//
+// for (int ii = 0; ii < selSize; ii++) {
+// if (key.equals(selList.get(ii))) {
+// System.out.println("selection " + i + " key " + key);
+// tree.setSelection(i);
+// }
+// }
+// }
+// }
+// }
+
public abstract List<TreeInput> makeTreeInput();
public HashMap<String, String> getSelections() {
sourceColumns = columns;
}
- public void setSelValueIndex(int index) {
- selValueIndex = index;
- }
-
public void deselectAll() {
getSelectionIndex().clear();
getSelections().clear();
tree.deselectAll();
- // updateTable();
+ }
+
+ public void setTableName(String name) {
+ treeName = name;
+ }
+
+ public String getTableName() {
+ return treeName;
+ }
+
+ public static FindProperty getFindProferty() {
+ if (null == findProferty) {
+ findProferty = new FindProperty();
+ }
+ return findProferty;
+ }
+
+ public static void setFindProferty(FindProperty findProferty) {
+ DATreeComposite.findProferty = findProferty;
+ }
+
+ public int search(FindProperty findProperty) {
+ GridItem[] items = tree.getItems();
+ int size = items.length;
+ boolean next = !findProperty.isBackward();
+ int start = findProperty.getIndex();
+ setFindProferty(findProperty);
+
+ // forward
+ if (next) {
+ for (int i = start; i < size; i++) {
+ if (checkText(findProperty, items[i])) {
+ tree.getVerticalBar().setSelection(
+ getScrollSelectionIndex(i));
+ System.out.println("select : " + i);
+// tree.setSelection(i);
+ tree.select(i);
+ System.out.println(tree.getSelectionIndex());
+ updateTree();
+ return i;
+ }
+ }
+ // can't find
+ for (int i = 0; i < start; i++) {
+ if (checkText(findProperty, items[i])) {
+ tree.getVerticalBar().setSelection(
+ getScrollSelectionIndex(i));
+ System.out.println("select : " + i);
+// tree.setSelection(i);
+ tree.select(i);
+ System.out.println(tree.getSelectionIndex());
+ updateTree();
+ return i;
+ }
+ }
+ } else { // back
+ for (int i = start; i >= 0; i--) {
+ if (checkText(findProperty, items[i])) {
+ tree.getVerticalBar().setSelection(
+ getScrollSelectionIndex(i));
+ tree.setSelection(i);
+ updateTree();
+ return i;
+ }
+ }
+
+ for (int i = size - 1; i > start; i--) {
+ if (checkText(findProperty, items[i])) {
+ tree.getVerticalBar().setSelection(
+ getScrollSelectionIndex(i));
+ tree.setSelection(i);
+ updateTree();
+ return i;
+ }
+ }
+ }
+ tree.deselectAll();
+ return -1;
+ }
+
+ private int getScrollSelectionIndex(int selection) {
+ int size = tree.getVerticalBar().getThumb() / 2;
+ int output = selection - size;
+
+ output = (output < 0) ? 0 : output;
+ return output;
+ }
+
+ private boolean checkText(FindProperty findProperty, GridItem items) {
+ GridColumn[] columns = tree.getColumns();
+ int columnSize = columns.length;
+ String input = findProperty.getLastSearch();
+ boolean wholeWord = findProperty.isWholeWord();
+ boolean caseSensitive = findProperty.isCaseSensitive();
+
+ for (int ii = 0; ii < columnSize; ii++) {
+ String text = items.getText(ii);
+
+ if (!caseSensitive) {
+ text = text.toUpperCase();
+ input = input.toUpperCase();
+ }
+
+ if (!wholeWord) {
+ if (text.contains(input)) {
+ return true;
+ }
+ } else {
+ if (0 == input.compareTo(text)) {
+ return true;
+ }
+ }
+ }
+ return false;
}
}
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.services.ISourceProviderService;
import org.tizen.dynamicanalyzer.logparser.LogCenterConstants;
-import org.tizen.dynamicanalyzer.services.TimelineUpdateSourceProvider;
import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineConstants;