KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > regis > gui > widgets > NodePanel


1 package org.sapia.regis.gui.widgets;
2
3 import java.awt.Component JavaDoc;
4 import java.awt.FlowLayout JavaDoc;
5 import java.util.ArrayList JavaDoc;
6 import java.util.List JavaDoc;
7
8 import javax.swing.JComponent JavaDoc;
9 import javax.swing.JPanel JavaDoc;
10 import javax.swing.JTextField JavaDoc;
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 JavaDoc implements ContextAware, GuiConsts{
22   
23   private RenderContext _ctx;
24   
25   public NodePanel(){
26     setLayout(new FlowLayout JavaDoc(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 JavaDoc component = (JComponent JavaDoc)JellyHelper.render(child, child.getSettings().resolveURL("org/sapia/regis/gui/screens/nodePane.jelly.xml"));
39       super.add(component);
40       // THIS IS A HACK TO TRIGGER PROPER TAB REFRESH AFTER ADDING PROPERTY
41
JComponent JavaDoc comp = (JComponent JavaDoc)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 JavaDoc getProperties(){
50     JComponent JavaDoc panel = (JComponent JavaDoc)super.getComponent(0);
51     Component JavaDoc[] comps = panel.getComponents();
52     List JavaDoc props = new ArrayList JavaDoc();
53     for(int i = 0; i < comps.length; i++){
54       if(comps[i] instanceof JTextField JavaDoc){
55         JTextField JavaDoc field = (JTextField JavaDoc)comps[i];
56         String JavaDoc 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