KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > wsdl > ui > view > grapheditor > widget > PartnerLinkTypeContentWidget


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * 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 package org.netbeans.modules.xml.wsdl.ui.view.grapheditor.widget;
20
21 import java.awt.Color JavaDoc;
22 import java.awt.Rectangle JavaDoc;
23
24 import javax.swing.BorderFactory JavaDoc;
25
26 import org.netbeans.api.visual.widget.LabelWidget;
27 import org.netbeans.api.visual.widget.Scene;
28 import org.netbeans.api.visual.widget.Widget;
29 import org.netbeans.modules.xml.wsdl.model.extensions.bpel.PartnerLinkType;
30 import org.netbeans.modules.xml.wsdl.model.extensions.bpel.Role;
31 import org.netbeans.modules.xml.wsdl.ui.view.grapheditor.OperationSceneLayer;
32 import org.netbeans.modules.xml.wsdl.ui.view.grapheditor.layout.PartnerLinkTypeContentLayout;
33 import org.openide.util.Lookup;
34 import org.openide.util.lookup.Lookups;
35
36 /**
37  * Class PartnerLinkTypeContentWidget is a widget container for the
38  * PartnerLinkType widgets.
39  */

40 public class PartnerLinkTypeContentWidget extends Widget {
41
42     private Lookup mLookup;
43     private final PartnerLinkType mPartnerLinkType;
44     private RoleWidget mRightRoleWidget;
45     private RoleWidget mLeftRoleWidget;
46
47     private OperationSceneLayer mOperationSceneLayer;
48
49     public PartnerLinkTypeContentWidget(Scene scene, PartnerLinkType partnerLinkType) {
50         super(scene);
51         assert partnerLinkType != null : "partnerLinkTypeWidget cannot be created";
52         mPartnerLinkType = partnerLinkType;
53         init();
54     }
55     
56     private void init() {
57         mLookup = Lookups.fixed(new Object JavaDoc[] {
58             mPartnerLinkType,
59             this
60         });
61         refreshRoles();
62         //setBorder(BorderFactory.createLineBorder(Color.RED));
63

64     }
65     
66     public OperationSceneLayer getOperationSceneLayer() {
67         return mOperationSceneLayer;
68     }
69     
70     @Override JavaDoc
71     public Rectangle JavaDoc calculateClientArea() {
72         return super.calculateClientArea();
73     }
74     
75     private void refreshRoles() {
76         removeChildren();
77         Scene scene = getScene();
78         setBorder(BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(1, 0, 0, 0, Color.BLUE.darker()), BorderFactory.createEmptyBorder(10, 14, 0, 14)));
79         
80         setLayout(new PartnerLinkTypeContentLayout(75));
81         
82         
83         WidgetFactory factory = WidgetFactory.getInstance();
84
85         Role role1 = mPartnerLinkType.getRole1();
86         Role role2 = mPartnerLinkType.getRole2();
87         
88         //if role1 is deleted then role1 becomes previous role2.
89
//we need to find out which rolewidget was for role2 and keep it in the same place.
90
RoleWidget role1Widget = null;
91         if (role1 != null) {
92             role1Widget = (RoleWidget) factory.createWidget(scene, role1, mLookup, true);
93         } else {
94             role1Widget = (RoleWidget) factory.createWidget(scene, Role.class, mLookup);
95         }
96         RoleWidget role2Widget = null;
97         if (role2 != null) {
98             role2Widget = (RoleWidget) factory.createWidget(scene, role2, mLookup, true);
99         } else {
100             role2Widget = (RoleWidget) factory.createWidget(scene, Role.class, mLookup);
101         }
102
103         //Check did left one become right one?
104
if (role1Widget.isLeftSided() || role2Widget.isLeftSided()) {
105             if (role1Widget.isLeftSided()) {
106                 mLeftRoleWidget = role1Widget;
107                 mRightRoleWidget = role2Widget;
108             } else if (role2Widget.isLeftSided()){
109                 mLeftRoleWidget = role2Widget;
110                 mRightRoleWidget = role1Widget;
111             }
112         } else {
113             mRightRoleWidget = role1Widget;
114             mLeftRoleWidget = role2Widget;
115         }
116         
117         mLeftRoleWidget.setLeftSided(true);
118         mRightRoleWidget.setLeftSided(false);
119         addChild(mLeftRoleWidget);
120         addChild(mRightRoleWidget);
121         
122         mOperationSceneLayer = new OperationSceneLayer(scene, this);
123         addChild(mOperationSceneLayer);
124         
125         LabelWidget roleLabel = new LabelWidget(scene, "Roles");
126         roleLabel.setForeground(Color.GRAY);
127         
128         LabelWidget portTypesLabel = new LabelWidget(scene, "Port Types");
129         portTypesLabel.setForeground(Color.GRAY);
130         
131         addChild(roleLabel);
132         addChild(portTypesLabel);
133     }
134     
135     public RoleWidget getLeftRoleWidget() {
136         return mLeftRoleWidget;
137     }
138     
139     public RoleWidget getRightRoleWidget() {
140         return mRightRoleWidget;
141     }
142
143     public PartnerLinkType getWSDLComponent() {
144         return mPartnerLinkType;
145     }
146
147     public void updateContent() {
148         refreshRoles();
149     }
150     
151 }
152
Popular Tags