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.NodeModel; 18 import org.sapia.regis.impl.PropertyImpl; 19 import org.sapia.util.xml.confix.ConfigurationException; 20 21 public class NodePanel extends JPanel implements ContextAware, GuiConsts{ 22 23 private RenderContext _ctx; 24 25 public NodePanel(){ 26 setLayout(new FlowLayout (FlowLayout.LEFT)); 27 } 28 29 30 public synchronized void fireCurrentNodeChange(){ 31 super.removeAll(); 32 NodeModel nodeModel = GlobalContext.getInstance().getModelManager().getNodeModel(); 33 if(nodeModel.getNode() == null) return; 34 35 RenderContext child = _ctx.newChildInstance(); 36 child.getEnv().put("Model", nodeModel, "local"); 37 try{ 38 JComponent component = (JComponent )JellyHelper.render(child, child.getSettings().resolveURL("org/sapia/regis/gui/screens/nodePane.jelly.xml")); 39 super.add(component); 40 JComponent comp = (JComponent )GlobalContext.getInstance().getWidget(TABBED_PANE); 42 comp.requestFocus(); 43 }catch(ConfigurationException e){ 44 GlobalContext.getInstance().error(e); 45 } 46 47 } 48 49 public synchronized List getProperties(){ 50 JComponent panel = (JComponent )super.getComponent(0); 51 Component [] comps = panel.getComponents(); 52 List props = new ArrayList (); 53 for(int i = 0; i < comps.length; i++){ 54 if(comps[i] instanceof JTextField ){ 55 JTextField field = (JTextField )comps[i]; 56 String value = field.getText(); 57 if(value == null || value.trim().length() == 0){ 58 continue; 59 } 60 PropertyImpl prop = new PropertyImpl(field.getName(), field.getText()); 61 props.add(prop); 62 } 63 } 64 return props; 65 } 66 67 public void handleContext(RenderContext context) { 68 _ctx = context; 69 } 70 } 71 | Popular Tags |