1 19 package org.netbeans.modules.xml.wsdl.ui.view.grapheditor.widget; 20 21 import java.awt.Color ; 22 import java.awt.Rectangle ; 23 24 import javax.swing.BorderFactory ; 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 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 [] { 58 mPartnerLinkType, 59 this 60 }); 61 refreshRoles(); 62 64 } 65 66 public OperationSceneLayer getOperationSceneLayer() { 67 return mOperationSceneLayer; 68 } 69 70 @Override 71 public Rectangle 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 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 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 |