private void prepareConfigData(Packet result, String comp_name) throws ConfigurationException { if (comp_name.equals("--none--")) { newComponentCommand(result); return; } // end of if (comp_name.equals("--none--")) Command.setStatus(result, Command.Status.executing); Command.addAction(result, Command.Action.complete); // Let's try to sort them to make it easier to find options on // configuration page. Map<String, Object> allprop = new TreeMap<String, Object>(getAllProperties(comp_name)); for (Map.Entry<String, Object> entry : allprop.entrySet()) { Command.addFieldValue( result, XMLUtils.escape(entry.getKey()), XMLUtils.escape(objectToString(entry.getValue()))); } // end of for (Map.Entry entry: prop.entrySet()) Command.addFieldValue( result, XMLUtils.escape("new-prop-name"), XMLUtils.escape(comp_name + "/"), "text-single", "New property name"); Command.addFieldValue( result, XMLUtils.escape("new-prop-value"), "", "text-single", "New property value"); }
private void newComponentCommand(Packet result) { Command.addFieldValue(result, "Info", "Press:", "fixed"); Command.addFieldValue( result, "Info", "'Next' to set all parameters for the new component.", "fixed"); Command.setStatus(result, Command.Status.executing); Command.addAction(result, Command.Action.next); Command.addFieldValue(result, "Component name", "", "text-single", "Component name"); try { Set<Class<MessageReceiver>> receiv_cls = ClassUtil.getClassesImplementing(MessageReceiver.class); // All message receivers except MessageRouter String[] receiv_cls_names = new String[receiv_cls.size() - 1]; String[] receiv_cls_simple = new String[receiv_cls.size() - 1]; int idx = 0; for (Class<MessageReceiver> reciv : receiv_cls) { if (!reciv.getName().equals(ROUTER_COMP_CLASS_NAME)) { receiv_cls_names[idx] = reciv.getName(); receiv_cls_simple[idx++] = reciv.getSimpleName(); } // end of if (!reciv.getName().equals(ROUTER_COMP_CLASS_NAME)) } // end of for (MessageReceiver.class reciv: receiv_cls) Command.addFieldValue( result, "Component class", EXT_COMP_CLASS_NAME, "Component class", receiv_cls_simple, receiv_cls_names); } catch (Exception e) { log.log(Level.SEVERE, "Problem loading MessageReceiver implementations", e); Command.addFieldValue( result, "Component class", "ERROR!! Problem loading MessageReceiver implementations, " + "look in log file for details...", "text-single", "Component class"); } // end of try-catch }
private void newComponentCommand(Packet packet, Packet result, boolean admin) { String params_set = Command.getFieldValue(packet, "Params set"); if (Command.getAction(packet) != null && Command.getAction(packet).equals("prev")) { newComponentCommand(result); return; } // end of if () if (params_set != null) { createNewComponent(packet, result, admin); return; } // end of if (params_set != null) String new_comp_name = Command.getFieldValue(packet, "Component name"); String new_comp_class = Command.getFieldValue(packet, "Component class"); if (!checkComponentName(result, new_comp_name)) { return; } // end of if (!checkComponentName(new_comp_name)) Command.setStatus(result, Command.Status.executing); Command.addFieldValue(result, "Component name", new_comp_name, "hidden"); Command.addFieldValue(result, "Component class", new_comp_class, "hidden"); Command.addFieldValue(result, "Info1", "Press:", "fixed"); try { MessageReceiver mr = (MessageReceiver) Class.forName(new_comp_class).newInstance(); Command.addFieldValue( result, "Info4", "Component name: " + new_comp_name + ", class: " + mr.getClass().getSimpleName(), "fixed"); if (mr instanceof ConnectionManager) { String ports = Command.getFieldValue(packet, "TCP/IP ports"); if (ports == null) { Command.addFieldValue( result, "Info2", "1. 'Next' to set more component parameters.", "fixed"); Command.addFieldValue( result, "Info3", "2. 'Previous' to go back and select different component.", "fixed"); Command.addAction(result, Command.Action.next); Command.addAction(result, Command.Action.prev); Command.addFieldValue( result, "Info4", "This component uses TCP/IP ports, please provide port numbers:", "fixed"); Command.addFieldValue(result, "TCP/IP ports", "5557"); return; } else { String[] ports_arr = ports.split(","); int[] ports_i = new int[ports_arr.length]; try { for (int i = 0; i < ports_arr.length; i++) { ports_i[i] = Integer.decode(ports_arr[i].trim()); } // end of for (int i = 0; i < ports_arr.length; i++) defConfigParams.put(new_comp_name + "/connections/ports", ports_i); } catch (Exception e) { Command.addFieldValue( result, "Info2", "1. 'Next' to set more component parameters.", "fixed"); Command.addFieldValue( result, "Info3", "2. 'Previous' to go back and select different component.", "fixed"); Command.addAction(result, Command.Action.next); Command.addAction(result, Command.Action.prev); Command.addFieldValue( result, "Info4", "Incorrect TCP/IP ports provided, please provide port numbers:", "fixed"); Command.addFieldValue(result, "TCP/IP ports", ports); return; } // end of try-catch } // end of else } Command.addFieldValue( result, "Info2", "1. 'Finish' to create component with this parameters.", "fixed"); Command.addFieldValue( result, "Info3", "2. 'Previous' to go back and select different component.", "fixed"); Command.addAction(result, Command.Action.complete); Command.addAction(result, Command.Action.prev); mr.setName(new_comp_name); if (mr instanceof Configurable) { // Load defaults into sorted Map: Map<String, Object> comp_props = new TreeMap<String, Object>(((Configurable) mr).getDefaults(defConfigParams)); for (Map.Entry<String, Object> entry : comp_props.entrySet()) { Command.addFieldValue( result, XMLUtils.escape(entry.getKey()), XMLUtils.escape(objectToString(entry.getValue()))); } // end of for (Map.Entry entry: prop.entrySet()) } else { Command.addFieldValue( result, "Info6", "Component is not configurable, do you want to create it?", "fixed"); } // end of else Command.addFieldValue(result, "Params set", "true", "hidden"); } catch (Exception e) { log.log(Level.SEVERE, "Problem instantiating component:", e); Command.addFieldValue( result, "Component class", "ERROR!! Problem instantiating component, " + "look in log file for details...", "text-single", "Component class"); } // end of try-catch }