MessageNode messageNode = (MessageNode) value; IColumbaHeader header = messageNode.getHeader(); if (header == null) { LOG.info("header is null"); //$NON-NLS-1$ return this; } Flags flags = ((ColumbaHeader) header).getFlags(); if (flags != null) { // mark as bold if message is unseen if (!flags.getSeen()) { if (!getFont().equals(boldFont)) { setFont(boldFont); } } else if (messageNode.isHasRecentChildren()) { if (!getFont().equals(underlinedFont)) { setFont(underlinedFont); } } else if (!getFont().equals(plainFont)) { setFont(plainFont); } } Color msgColor = (Color) header.get("columba.color"); if (isSelected) setBackground(UIManager.getColor("Table.selectionBackground")); else setBackground(table.getBackground()); if (msgColor != null) { if (isSelected) setForeground(UIManager.getColor("Table.selectionForeground")); else { if (msgColor.equals(Color.BLACK) == false) setForeground(msgColor); else setForeground(table.getForeground()); } }
MessageNode messageNode = (MessageNode) value; IColumbaHeader header = messageNode.getHeader(); if (header == null) { LOG.info("header is null"); //$NON-NLS-1$ return this; } Flags flags = ((ColumbaHeader) header).getFlags(); if (flags != null) { // mark as bold if message is unseen if (!flags.getSeen()) { if (!getFont().equals(boldFont)) { setFont(boldFont); } } else if (messageNode.isHasRecentChildren()) { if (!getFont().equals(underlinedFont)) { setFont(underlinedFont); } } else if (!getFont().equals(plainFont)) { setFont(plainFont); } } Color msgColor = (Color) header.get("columba.color"); if (isSelected) setBackground(UIManager.getColor("Table.selectionBackground")); else setBackground(table.getBackground()); if (msgColor != null) { if (isSelected) setForeground(UIManager.getColor("Table.selectionForeground")); else { if (msgColor.equals(Color.BLACK) == false) setForeground(msgColor); else setForeground(table.getForeground()); } }
Clone fragments detected by clone detection tool
File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/gui/table/plugins/DefaultLabelRenderer.java File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/gui/table/plugins/MultiLineRenderer.java
Method name: Component getTableCellRendererComponent(JTable, Object, boolean, boolean, int, int) Method name: Component getTableCellRendererComponent(JTable, Object, boolean, boolean, int, int)
Number of AST nodes: 25 Number of AST nodes: 25
1
MessageNode messageNode = (MessageNode) value;
1
MessageNode messageNode = (MessageNode) value;
2
		IColumbaHeader header = messageNode.getHeader();
2
		IColumbaHeader header = messageNode.getHeader();
3
		if (header == null) {
3
		if (header == null) {
4
			LOG.info("header is null"); //$NON-NLS-1$
4
			LOG.info("header is null"); //$NON-NLS-1$
5
			return this;
5
			return this;
6
		}
6
		}
7
		Flags flags = ((ColumbaHeader) header).getFlags();
7
		Flags flags = ((ColumbaHeader) header).getFlags();
8
		if (flags != null) {
8
		if (flags != null) {
9
			// mark as bold if message is unseen
9
			// mark as bold if message is unseen
10
			if (!flags.getSeen()) {
10
			if (!flags.getSeen()) {
11
				if (!getFont().equals(boldFont)) {
11
				if (!getFont().equals(boldFont)) {
12
					setFont(boldFont);
12
					setFont(boldFont);
13
				}
13
				}
14
			} else if (messageNode.isHasRecentChildren()) {
14
			} else if (messageNode.isHasRecentChildren()) {
15
				if (!getFont().equals(underlinedFont)) {
15
				if (!getFont().equals(underlinedFont)) {
16
					setFont(underlinedFont);
16
					setFont(underlinedFont);
17
				}
17
				}
18
			} else if (!getFont().equals(plainFont)) {
18
			} else if (!getFont().equals(plainFont)) {
19
				setFont(plainFont);
19
				setFont(plainFont);
20
			}
20
			}
21
		}
21
		}
22
		Color msgColor = (Color) header.get("columba.color");
22
		Color msgColor = (Color) header.get("columba.color");
23
		if (isSelected)
23
		if (isSelected)
24
			setBackground(UIManager.getColor("Table.selectionBackground"));
24
			setBackground(UIManager.getColor("Table.selectionBackground"));
25
		else
25
		else
26
			setBackground(table.getBackground());
26
			setBackground(table.getBackground());
27
		if (msgColor != null) {
27
		if (msgColor != null) {
28
			if (isSelected)
28
			if (isSelected)
29
				setForeground(UIManager.getColor("Table.selectionForeground"));
29
				setForeground(UIManager.getColor("Table.selectionForeground"));
30
			else {
30
			else {
31
				if (msgColor.equals(Color.BLACK) == false)
31
				if (msgColor.equals(Color.BLACK) == false)
32
					setForeground(msgColor);
32
					setForeground(msgColor);
33
				else
33
				else
34
					setForeground(table.getForeground());
34
					setForeground(table.getForeground());
35
			}
35
			}
36
		}
36
		}
Summary
Number of common nesting structure subtrees1
Number of refactorable cases0
Number of non-refactorable cases1
Time elapsed for finding largest common nesting structure subtrees (ms)2.6
Clones locationClones are in different classes having the same super class
Number of node comparisons81
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements25
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)7.3
    Clone typeType 1
    Mapped Statements
    ID Statement ID Statement
    3
    MessageNode messageNode = (MessageNode)value;
    16
    MessageNode messageNode = (MessageNode)value;
    4
    IColumbaHeader header = messageNode.getHeader();
    17
    IColumbaHeader header = messageNode.getHeader();
    5
    if (header == null)
    18
    if (header == null)
    6
    LOG.info("header is null");
    19
    LOG.info("header is null");
    7
    return this;
    20
    return this;
    8
    Flags flags = ((ColumbaHeader)header).getFlags();
    21
    Flags flags = ((ColumbaHeader)header).getFlags();
    9
    if (flags != null)
    22
    if (flags != null)
    10
    if (!flags.getSeen())
    23
    if (!flags.getSeen())
    11
    if (!getFont().equals(boldFont))
    24
    if (!getFont().equals(boldFont))
    12
    setFont(boldFont);
    25
    setFont(boldFont);
    13
    else if (messageNode.isHasRecentChildren())
    26
    else if (messageNode.isHasRecentChildren())
    14
    if (!getFont().equals(underlinedFont))
    27
    if (!getFont().equals(underlinedFont))
    15
    setFont(underlinedFont);
    28
    setFont(underlinedFont);
    16
    else if (!getFont().equals(plainFont))
    29
    else if (!getFont().equals(plainFont))
    17
    setFont(plainFont);
    30
    setFont(plainFont);
    18
    Color msgColor = (Color)header.get("columba.color");
    31
    Color msgColor = (Color)header.get("columba.color");
    19
    if (isSelected)
    32
    if (isSelected)
    20
    setBackground(UIManager.getColor("Table.selectionBackground"));
    33
    setBackground(UIManager.getColor("Table.selectionBackground"));
    else
    else
    21
    setBackground(table.getBackground());
    34
    setBackground(table.getBackground());
    22
    if (msgColor != null)
    35
    if (msgColor != null)
    23
    if (isSelected)
    36
    if (isSelected)
    24
    setForeground(UIManager.getColor("Table.selectionForeground"));
    37
    setForeground(UIManager.getColor("Table.selectionForeground"));
    else
    else
    25
    if (msgColor.equals(Color.BLACK) == false)
    38
    if (msgColor.equals(Color.BLACK) == false)
    26
    setForeground(msgColor);
    39
    setForeground(msgColor);
    else
    else
    27
    setForeground(table.getForeground());
    40
    setForeground(table.getForeground());
    Precondition Violations (3)
    Row Violation
    1Clone fragment #1 returns variables , while Clone fragment #2 returns variables header
    2Not all possible execution flows end in a return statement
    3The refactoring of the clones is infeasible, because classes org.columba.mail.gui.table.plugins.DefaultLabelRenderer and org.columba.mail.gui.table.plugins.MultiLineRenderer do not have a common superclass