1 19 20 package org.netbeans.modules.web.project.ui.customizer; 21 22 import java.util.Set ; 23 import java.util.TreeSet ; 24 25 import javax.swing.AbstractListModel ; 26 import javax.swing.ComboBoxModel ; 27 28 import org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment; 29 import org.netbeans.modules.j2ee.deployment.devmodules.api.J2eeModule; 30 import org.netbeans.modules.j2ee.deployment.devmodules.api.J2eePlatform; 31 32 36 public class J2eePlatformUiSupport { 37 38 private J2eePlatformUiSupport() { 39 } 40 41 public static ComboBoxModel createPlatformComboBoxModel(String serverInstanceId, String j2eeLevel) { 42 return new J2eePlatformComboBoxModel(serverInstanceId, j2eeLevel); 43 } 44 45 public static String getServerInstanceID(Object j2eePlatformModelObject) { 46 if (j2eePlatformModelObject == null) 47 return null; 48 49 J2eePlatform j2eePlatform = ((J2eePlatformAdapter)j2eePlatformModelObject).getJ2eePlatform(); 50 String [] serverInstanceIDs = Deployment.getDefault().getServerInstanceIDs(); 51 for (int i = 0; i < serverInstanceIDs.length; i++) { 52 J2eePlatform platform = Deployment.getDefault().getJ2eePlatform(serverInstanceIDs[i]); 53 if (platform != null && platform.getDisplayName().equals(j2eePlatform.getDisplayName())) { 54 return serverInstanceIDs[i]; 55 } 56 } 57 58 return null; 59 } 60 61 64 public static void setSelectedPlatform(ComboBoxModel model, String serverInstanceID) { 65 if (!(model instanceof J2eePlatformComboBoxModel)) 66 return; 67 68 ((J2eePlatformComboBoxModel)model).setSelectedItem(serverInstanceID); 69 } 70 71 private static final class J2eePlatformComboBoxModel extends AbstractListModel implements ComboBoxModel { 72 private J2eePlatformAdapter[] j2eePlatforms; 73 private String initialJ2eePlatform; 74 private J2eePlatformAdapter selectedJ2eePlatform; 75 private String j2eeLevel; 76 77 public J2eePlatformComboBoxModel(String serverInstanceID, String j2eeLevel) { 78 initialJ2eePlatform = serverInstanceID; 79 this.j2eeLevel = j2eeLevel; 80 getJ2eePlatforms(); 81 } 82 83 public Object getElementAt(int index) { 84 return getJ2eePlatforms()[index]; 85 } 86 87 public int getSize() { 88 return getJ2eePlatforms().length; 89 } 90 91 public Object getSelectedItem() { 92 return selectedJ2eePlatform; 93 } 94 95 public void setSelectedItem(Object obj) { 96 selectedJ2eePlatform = (J2eePlatformAdapter)obj; 97 } 98 99 public void setSelectedItem(String serverInstanceID) { 100 for (int i = 0; i < j2eePlatforms.length; i++) { 101 if (j2eePlatforms[i].getServerInstanceID().equals(serverInstanceID)) { 102 selectedJ2eePlatform = j2eePlatforms[i]; 103 return; 104 } 105 } 106 } 107 108 private synchronized J2eePlatformAdapter[] getJ2eePlatforms() { 109 if (j2eePlatforms == null) { 110 String [] serverInstanceIDs = Deployment.getDefault().getServerInstanceIDs(); 111 Set orderedNames = new TreeSet (); 112 boolean activeFound = false; 113 114 for (int i = 0; i < serverInstanceIDs.length; i++) { 115 J2eePlatform j2eePlatform = Deployment.getDefault().getJ2eePlatform(serverInstanceIDs[i]); 116 if (j2eePlatform != null) { 117 if (j2eePlatform.getSupportedModuleTypes().contains(J2eeModule.WAR) 118 && j2eePlatform.getSupportedSpecVersions(J2eeModule.WAR).contains(j2eeLevel)) { 119 J2eePlatformAdapter adapter = new J2eePlatformAdapter(j2eePlatform, serverInstanceIDs[i]); 120 orderedNames.add(adapter); 121 122 if (selectedJ2eePlatform == null && !activeFound && initialJ2eePlatform != null) { 123 if (serverInstanceIDs[i].equals(initialJ2eePlatform)) { 124 selectedJ2eePlatform = adapter; 125 activeFound = true; 126 } 127 } 128 } 129 } 130 } 131 j2eePlatforms = (J2eePlatformAdapter[])orderedNames.toArray(new J2eePlatformAdapter[orderedNames.size()]); 132 } 133 return j2eePlatforms; 134 } 135 } 136 137 private static final class J2eePlatformAdapter implements Comparable { 138 private J2eePlatform platform; 139 private String serverInstanceID; 140 141 public J2eePlatformAdapter(J2eePlatform platform, String serverInstanceID) { 142 this.platform = platform; 143 this.serverInstanceID = serverInstanceID; 144 } 145 146 public J2eePlatform getJ2eePlatform() { 147 return platform; 148 } 149 150 public String getServerInstanceID() { 151 return serverInstanceID; 152 } 153 154 public String toString() { 155 return platform.getDisplayName(); 156 } 157 158 public int compareTo(Object o) { 159 J2eePlatformAdapter oa = (J2eePlatformAdapter)o; 160 return toString().compareTo(oa.toString()); 161 } 162 } 163 } 164 | Popular Tags |