File path: /emf-2.4.1/src/org/eclipse/emf/common/ui/celleditor/ExtendedTableEditor.java | File path: /emf-2.4.1/src/org/eclipse/emf/common/ui/celleditor/ExtendedTableTreeEditor.java | |||
Method name: void mouseUp(MouseEvent)
|
Method name: void mouseUp(MouseEvent)
|
|||
Number of AST nodes: 17 | Number of AST nodes: 15 | |||
1 | if (event.button == 1)↵ | |||
2 | {↵ | |||
3 | TableItem [] tableItems = table.getItems();↵ | |||
4 | int columnCount = table.getColumnCount();↵ | |||
5 | LOOP: for (int i = table.getTopIndex(); i < tableItems.length; ++i)↵ | 1 | LOOP: for (int i = tableTree.getTable().getTopIndex(); i < tableItems.length; ++i)↵ | |
6 | {↵ | 2 | {↵ | |
7 | for (int j = 0; j < columnCount; ++j)↵ | 3 | for (int j = 0; j < columnCount; ++j)↵ | |
8 | {↵ | 4 | {↵ | |
9 | Rectangle bounds = tableItems[i].getBounds(j);↵ | 5 | Rectangle bounds = tableItems[i].getBounds(j);↵ | |
10 | if (bounds.y > event.y)↵ | 6 | if (bounds.y > event.y)↵ | |
11 | {↵ | 7 | {↵ | |
12 | break LOOP;↵ | 8 | break LOOP;↵ | |
13 | }↵ | 9 | }↵ | |
14 | else if (bounds.contains(event.x, event.y))↵ | 10 | else if (bounds.contains(event.x, event.y))↵ | |
15 | {↵ | 11 | {↵ | |
16 | if (j != 0 || !tableItems[i].getImageBounds(0).contains(event.x, event.y))↵ | 12 | if (j != 0 || !tableItems[i].getImageBounds(0).contains(event.x, event.y))↵ | |
17 | {↵ | 13 | {↵ | |
18 | TableItem tableItem = tableItems[i];↵ | 14 | TableItem tableItem = tableItems[i];↵ | |
15 | TableTreeItem tableTreeItem = (TableTreeItem)tableItems[i].getData(ExtendedTableTreeViewer.ITEM_ID);↵ | |||
19 | if (tableItem == editTableItem)↵ | 16 | if (tableTreeItem == editTableTreeItem)↵ | |
20 | {↵ | 17 | {↵ | |
21 | selectedTableItem = null;↵ | 18 | selectedTableItem = null;↵ | |
22 | table.showSelection();↵ | 19 | table.showSelection();↵ | |
23 | editItem(editTableItem, editTableItemColumn);↵ | 20 | editItem(tableItem, editTableTreeItem, editTableTreeItemColumn);↵ | |
24 | }↵ | 21 | }↵ | |
25 | }↵ | 22 | }↵ | |
26 | break LOOP;↵ | 23 | break LOOP;↵ | |
27 | }↵ | 24 | }↵ | |
28 | }↵ | 25 | }↵ | |
29 | }↵ | 26 |
| |
30 | } | |||
See real code fragment | See real code fragment |
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 0 |
Number of non-refactorable cases | 1 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 1.4 |
Clones location | Clones are in different classes having the same super class |
Number of node comparisons | 37 |
Number of mapped statements | 13 |
Number of unmapped statements in the first code fragment | 2 |
Number of unmapped statements in the second code fragment | 1 |
Time elapsed for statement mapping (ms) | 3.5 |
Clone type | Type 3 |
ID | Statement | ID | Statement | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | TableItem[] tableItems = table.getItems(); | | ||||||||||||||||||||||
3 | int columnCount = table.getColumnCount(); | | ||||||||||||||||||||||
4 | for (int i = table.getTopIndex(); i < tableItems.length; ++i) |
| 4 | for (int i = tableTree.getTable().getTopIndex(); i < tableItems.length; ++i) | ||||||||||||||||||||
5 | for (int j = 0; j < columnCount; ++j) | 5 | for (int j = 0; j < columnCount; ++j) | |||||||||||||||||||||
6 | Rectangle bounds = tableItems[i].getBounds(j); | 6 | Rectangle bounds = tableItems[i].getBounds(j); | |||||||||||||||||||||
7 | if (bounds.y > event.y) | 7 | if (bounds.y > event.y) | |||||||||||||||||||||
8 | break LOOP; | 8 | break LOOP; | |||||||||||||||||||||
9 | else if (bounds.contains(event.x, event.y)) | 9 | else if (bounds.contains(event.x, event.y)) | |||||||||||||||||||||
10 | if (j != 0 || !tableItems[i].getImageBounds(0).contains(event.x, event.y)) | 10 | if (j != 0 || !tableItems[i].getImageBounds(0).contains(event.x, event.y)) | |||||||||||||||||||||
11 | TableItem tableItem = tableItems[i]; | 11 | TableItem tableItem = tableItems[i]; | |||||||||||||||||||||
|
| 12 | TableTreeItem tableTreeItem = (TableTreeItem)tableItems[i].getData(ExtendedTableTreeViewer.ITEM_ID); | |||||||||||||||||||||
12 | if (tableItem == editTableItem) |
| 13 | if (tableTreeItem == editTableTreeItem) | ||||||||||||||||||||
13 | selectedTableItem = null; | 14 | selectedTableItem = null; | |||||||||||||||||||||
14 | table.showSelection(); | 15 | table.showSelection(); | |||||||||||||||||||||
15 | editItem(editTableItem, editTableItemColumn); |
| 16 | editItem(tableItem, editTableTreeItem, editTableTreeItemColumn); | ||||||||||||||||||||
16 | break LOOP; | 17 | break LOOP; |
Row | Violation |
---|---|
1 | Unmatched statement TableTreeItem tableTreeItem=(TableTreeItem)tableItems[i].getData(ExtendedTableTreeViewer.ITEM_ID); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
2 | Expression tableItem cannot be parameterized, because it has dependencies to/from statements that will be extracted |
3 | Expression editItem(tableItem,editTableTreeItem,editTableTreeItemColumn) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
4 | Expression editItem(editTableItem,editTableItemColumn) is a void method call, and thus it cannot be parameterized |
5 | Expression editItem(tableItem,editTableTreeItem,editTableTreeItemColumn) is a void method call, and thus it cannot be parameterized |
6 | Clone fragment #1 returns variables , while Clone fragment #2 returns variables i |