01: /*
02: * The contents of this file are subject to the terms of the Common Development
03: * and Distribution License (the License). You may not use this file except in
04: * compliance with the License.
05: *
06: * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
07: * or http://www.netbeans.org/cddl.txt.
08: *
09: * When distributing Covered Code, include this CDDL Header Notice in each file
10: * and include the License file at http://www.netbeans.org/cddl.txt.
11: * If applicable, add the following below the CDDL Header, with the fields
12: * enclosed by brackets [] replaced by your own identifying information:
13: * "Portions Copyrighted [year] [name of copyright owner]"
14: *
15: * The Original Software is NetBeans. The Initial Developer of the Original
16: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17: * Microsystems, Inc. All Rights Reserved.
18: */
19:
20: package org.netbeans.modules.soa.mapper.basicmapper.canvas.jgo;
21:
22: import org.netbeans.modules.soa.mapper.common.basicmapper.canvas.gtk.ICanvasFieldNode;
23: import org.netbeans.modules.soa.mapper.common.basicmapper.canvas.gtk.ICanvasMapperLink;
24: import org.netbeans.modules.soa.mapper.common.basicmapper.canvas.gtk.ICanvasMethoidNode;
25:
26: /**
27: * Attempts to determine if a given path has been highlighted.
28: *
29: * @author Josh Sandusky
30: */
31: public class NetworkHighlightDetector implements
32: NetworkHighlightConstants {
33:
34: private boolean mIsHighlightDetected;
35:
36: public NetworkHighlightDetector(ICanvasMapperLink link) {
37: mIsHighlightDetected = false;
38: visit(link);
39: }
40:
41: public boolean isHighlightDetected() {
42: return mIsHighlightDetected;
43: }
44:
45: private void visit(ICanvasMapperLink link) {
46: if (link instanceof BasicCanvasNodeToNodeLink) {
47: visit((BasicCanvasNodeToNodeLink) link);
48: } else if (link instanceof BasicCanvasNodeToTreeLink) {
49: visit((BasicCanvasNodeToTreeLink) link);
50: } else if (link instanceof BasicCanvasTreeToNodeLink) {
51: visit((BasicCanvasTreeToNodeLink) link);
52: } else if (link instanceof BasicCanvasTreeToTreeLink) {
53: visit((BasicCanvasTreeToTreeLink) link);
54: }
55: }
56:
57: private void visit(BasicCanvasNodeToNodeLink link) {
58: if (link.getSourceFieldNode() != null) {
59: visit(link.getSourceFieldNode());
60: }
61: if (link.getDestFieldNode() != null) {
62: visit(link.getDestFieldNode());
63: }
64: }
65:
66: private void visit(BasicCanvasNodeToTreeLink link) {
67: if (link.getSourceFieldNode() != null) {
68: visit(link.getSourceFieldNode());
69: }
70: }
71:
72: private void visit(BasicCanvasTreeToNodeLink link) {
73: if (link.getDestFieldNode() != null) {
74: visit(link.getDestFieldNode());
75: }
76: }
77:
78: private void visit(ICanvasFieldNode fieldNode) {
79: ICanvasMethoidNode methoidNode = (ICanvasMethoidNode) fieldNode
80: .getContainer();
81: if (methoidNode instanceof BasicCanvasMethoidNode) {
82: BasicCanvasMethoidNode basicMethoidNode = (BasicCanvasMethoidNode) methoidNode;
83: if (COLOR_NODE_SELECTED.equals(basicMethoidNode
84: .getTitleBarColor())) {
85: mIsHighlightDetected = true;
86: }
87: }
88: }
89: }
|