1 package org.sapia.regis.gui.widgets; 2 3 import java.awt.Component ; 4 import java.awt.FlowLayout ; 5 import java.util.ArrayList ; 6 import java.util.List ; 7 8 import javax.swing.JComponent ; 9 import javax.swing.JPanel ; 10 import javax.swing.JTextField ; 11 12 import org.sapia.gumby.RenderContext; 13 import org.sapia.gumby.factory.ContextAware; 14 import org.sapia.gumby.jelly.JellyHelper; 15 import org.sapia.regis.gui.GlobalContext; 16 import org.sapia.regis.gui.GuiConsts; 17 import org.sapia.regis.gui.model.NewNodeModel; 18 import org.sapia.regis.impl.NodeImpl; 19 import org.sapia.regis.impl.PropertyImpl; 20 import org.sapia.util.xml.confix.ConfigurationException; 21 22 public class NewNodePanel extends JPanel implements ContextAware, GuiConsts{ 23 24 private RenderContext _ctx; 25 26 public NewNodePanel(){ 27 setLayout(new FlowLayout (FlowLayout.LEFT)); 28 } 29 30 31 public synchronized void fireCreateNewNodeForm(){ 32 super.removeAll(); 33 34 NodeImpl impl = new NodeImpl(); 35 NewNodeModel model = GlobalContext.getInstance().getModelManager().getNewNodeModel(); 36 model.setNode(impl); 37 model.setParent(GlobalContext.getInstance().getModelManager().getNodeModel().getNode()); 38 RenderContext child = _ctx.newChildInstance(); 39 child.getEnv().put("Model", model, "local"); 40 41 try{ 42 JComponent component = (JComponent )JellyHelper.render(child, child.getSettings().resolveURL("org/sapia/regis/gui/screens/newNodePane.jelly.xml")); 43 super.add(component); 44 }catch(ConfigurationException e){ 45 GlobalContext.getInstance().error(e); 46 } 47 48 } 49 50 public synchronized void fireUpdateNewNodeForm(){ 51 super.removeAll(); 52 53 NewNodeModel model = GlobalContext.getInstance().getModelManager().getNewNodeModel(); 54 RenderContext child = _ctx.newChildInstance(); 55 child.getEnv().put("Model", model, "local"); 56 57 try{ 58 JComponent component = (JComponent )JellyHelper.render(child, child.getSettings().resolveURL("org/sapia/regis/gui/screens/newNodePane.jelly.xml")); 59 super.add(component); 60 JComponent comp = (JComponent )GlobalContext.getInstance().getWidget(TABBED_PANE); 62 comp.requestFocus(); 63 }catch(ConfigurationException e){ 64 GlobalContext.getInstance().error(e); 65 } 66 } 67 68 public synchronized List getProperties(){ 69 JComponent panel = (JComponent )super.getComponent(0); 70 Component [] comps = panel.getComponents(); 71 List props = new ArrayList (); 72 for(int i = 0; i < comps.length; i++){ 73 if(comps[i] instanceof JTextField ){ 74 JTextField field = (JTextField )comps[i]; 75 String value = field.getText(); 76 if(value == null || value.trim().length() == 0){ 77 continue; 78 } 79 PropertyImpl prop = new PropertyImpl(field.getName(), field.getText()); 80 props.add(prop); 81 } 82 } 83 return props; 84 } 85 86 public void handleContext(RenderContext context) { 87 _ctx = context; 88 } 89 } 90 | Popular Tags |