- return;
- }
- boolean byhost = Cache.getDefault("WSMENU_BYHOST", false), bytype = Cache
- .getDefault("WSMENU_BYTYPE", false);
- /**
- * eventually, JWS2 services will appear under the same align/etc submenus.
- * for moment we keep them separate.
- */
- JMenu atpoint;
- List<Jws2Instance> enumerableServices=new ArrayList<Jws2Instance>();
- //jws2al.removeAll();
- Map<String, Jws2Instance> preferredHosts=new HashMap<String,Jws2Instance>();
- Map<String, List<Jws2Instance>> alternates = new HashMap<String, List<Jws2Instance>>();
- for (Jws2Instance service : services.toArray(new Jws2Instance[0]))
- {
- if (!isRecalculable(service.action)) {
- // add 'one shot' services to be displayed using the classic menu structure
- enumerableServices.add(service);
- } else {
- if (!preferredHosts.containsKey(service.serviceType))
- {
- Jws2Instance preferredInstance = getPreferredServiceFor(alignFrame,
- service.serviceType);
- if (preferredInstance != null)
- {
- preferredHosts.put(service.serviceType, preferredInstance);
- }
- else
- {
- preferredHosts.put(service.serviceType, service);
- }
- }
- List<Jws2Instance> ph=alternates.get(service.serviceType);
- if (preferredHosts.get(service.serviceType)!=service)
- {
- if (ph==null)
- {
- ph=new ArrayList<Jws2Instance>();
- }
- ph.add(service);
- alternates.put(service.serviceType, ph);
- }
- }
-
- }
-
- // create GUI element for classic services
- addEnumeratedServices(jws2al, alignFrame, enumerableServices);
- // and the instantaneous services
- for (final Jws2Instance service : preferredHosts.values())
- {
- atpoint = JvSwingUtils.findOrCreateMenu(jws2al,service.action);
- JMenuItem hitm;
- if (atpoint.getItemCount()>1) {
- // previous service of this type already present
- atpoint.addSeparator();
- }
- atpoint.add(hitm = new JMenuItem(service.getHost()));
- hitm.setForeground(Color.blue);
- hitm.addActionListener(new ActionListener()
- {
-
- @Override
- public void actionPerformed(ActionEvent e)
- {
- Desktop.showUrl(service.getHost());
- }
- });
- hitm.setToolTipText(JvSwingUtils
- .wrapTooltip("Opens the JABAWS server's homepage in web browser"));
-
- service.attachWSMenuEntry(atpoint, alignFrame);
- if (alternates.containsKey(service.serviceType))