/* * */ package captor.windowsystem.formcomponent.ncp; import java.awt.Component; import java.util.Vector; import captor.modelsystem.Model; import captor.projectsystem.xmlgen.CCBuffer; import captor.windowsystem.formcomponent.FormComponent; public class Element { private Vector parameters; private String classname; private Model model; public Element(Model model) { this.model = model; parameters = new Vector(); classname = ""; } public void addParameter(Parameter parameter) { for ( int i = 0; i < parameters.size(); i++ ) { Parameter p = (Parameter) parameters.get(i); if ( p.getName().equals(parameter.getName()) ) { p.setValue(parameter.getValue()); return; } } parameters.add(parameter); } //------------------------------------------------------------------------- /** * @return Returns the classname. */ public String getClassname() { return classname; } /** * @param classname The classname to set. */ public void setClassname(String classname) { this.classname = classname; } /** * @return Returns the parameters. */ public Vector getParameters() { return parameters; } /** * @param parameters The parameters to set. */ public void setParameters(Vector parameters) { this.parameters = parameters; } public void deleteParameterByName(String name) { for ( int i = 0; i < parameters.size(); i++ ) { Parameter p = (Parameter) parameters.get(i); if ( p.getName().trim().equals(name.trim()) ) { parameters.removeElement(p); return; } } } //------------------------------------------------------------------------- public Parameter getParameterByName(String name) { for ( int i = 0; i < parameters.size(); i++ ) { Parameter p = (Parameter) parameters.get(i); if ( p.getName().trim().equals(name.trim())) return p; } return null; } //------------------------------------------------------------------------- public String validate(Component component) { FormComponent fe = FEUtil.getFormElementInstance(component, model, classname); if ( fe == null ) { return "Cannot instantiate formElement " + classname; } for ( int i = 0; i < parameters.size(); i++ ) { Parameter p = (Parameter) parameters.get(i); fe.setParameter(p.getName(), p.getValue()); } if (!fe.validateParameters() ) { StringBuffer sb = new StringBuffer(); sb.append(" Error : formComponent validation error.\n"); sb.append("Source error: There are missing parameters in the form component selected (" + classname + ").\n"); sb.append(" Correction: Put the required missing parameters in the parameters list.\n"); sb.append(" Tip: Press the 'Help' button for parameters specific elements details.\n\n"); return sb.toString(); } //return null if ok return null; } //------------------------------------------------------------------------- public boolean validateParameters() { // try { // Class cls = Class.forName(combo.getSelectedItem().toString()); // // Class partypes[] = new Class[2]; // partypes[0] = model.getClass(); // partypes[1] = model.getGui().getTree().getModel().getRoot().getClass(); // Constructor ctor = cls.getConstructor(partypes); // // Object arglist[] = new Object[2]; // arglist[0] = model; // arglist[1] = null; // Object retobj = ctor.newInstance(arglist); // FormComponent fe = (FormComponent) retobj; // // for(int i = 0; i < parameterList.size(); i++ ) { // ParameterType pt = (ParameterType) parameterList.get(i); // fe.setParameter(pt.getName(), pt.getValue()); // } // // fe.parseParameters(); // // if ( !fe.validateParameters() ) { // StringBuffer sb = new StringBuffer(); // sb.append(" Error - There are missing 'required' parameters in the form component parameter list.\n"); // sb.append("Correction - Put the missing 'required' parameres in the parameres list.\n\n"); // sb.append(" Tip - See individual form component documentation for required parameters details.\n\n"); // // sb.append("FormComponent parameters list:\n\n"); // for ( int j = 0; j < fe.getRequiredParameters().size(); j++ ) { // String aux = (String) fe.getRequiredParameters().get(j); // sb.append(" - " + fe.getRequiredParameters().get(j) + "\n"); // } // // JOptionPane.showMessageDialog(this, sb.toString()); // return false; // } // } // catch (Throwable e) { // String msg = StringUtil.formatMessage(MyIntl.MSG58, combo.getSelectedItem().toString()); // JOptionPane.showMessageDialog(this, msg); // model.getGui().getGuiView().setErrorView(e.toString()); // return false; // } // return true; } //------------------------------------------------------------------------- public void toXML(CCBuffer out) { out.newLine(); out.ident(); out.appendln("<formComponent>"); out.ident(); out.append("<fullname>"); out.append(classname, true); out.appendln("</fullname>", true); if ( parameters.size() > 0 ) { out.appendln("<parameters>"); out.ident(); for ( int i = 0; i < parameters.size(); i++ ) { Parameter p = (Parameter) parameters.get(i); String name = p.getName(); String value = p.getValue(); if ( name.equals("") ) continue; out.appendln("<parameter>"); out.ident(); out.append("<name>"); out.append(name, true); out.appendln("</name>", true); out.append("<value>"); out.append(value, true); out.appendln("</value>", true); out.dident(); out.appendln("</parameter>"); } out.dident(); out.appendln("</parameters>"); } out.dident(); out.appendln("</formComponent>"); out.dident(); } //------------------------------------------------------------------------- public void print() { System.out.println("Element:"); System.out.println(" Name: " + classname); System.out.println(" Parameters:"); for ( int i = 0; i < parameters.size(); i++ ) { Parameter p = (Parameter) parameters.get(i); System.out.println(" Name: " + p.getName()); System.out.println(" Value: " + p.getValue()); } } //------------------------------------------------------------------------- public String toString() { return classname; } //------------------------------------------------------------------------- public void removeParameters() { parameters = new Vector(); } //------------------------------------------------------------------------- public void removeParameterByName(String name) { for ( int i = 0; i < parameters.size(); i++ ) { Parameter p = (Parameter) parameters.get(i); if ( p.getName().equals(name) ) { parameters.remove(i); } } } //------------------------------------------------------------------------- }