1 package gnu.kawa.swingviews; 2 import gnu.kawa.models.*; 3 import java.awt.Component ; 4 import java.awt.Container ; 5 import javax.swing.*; 6 import gnu.lists.*; 7 8 public class SwingFrame extends JFrame 9 implements gnu.kawa.models.Window 10 { 11 SwingDisplay display; 12 13 public Display getDisplay () { return display; } 14 15 public SwingFrame (String title, 16 javax.swing.JMenuBar menubar, 17 Object contents) 18 { 19 JFrame fr = this; 20 if (title != null) 21 fr.setTitle(title); 22 if (menubar != null) 23 fr.setJMenuBar(menubar); 24 Container pane = getContentPane(); 25 pane.setLayout(new BoxLayout(pane, BoxLayout.X_AXIS)); 26 addComponent(contents); 27 } 28 29 public void setContent (Object content) 30 { 31 setContentPane(new JPanel()); 32 addComponent(content); 33 pack(); 34 } 35 36 public void setMenuBar (Object menubar) 37 { 38 setJMenuBar((javax.swing.JMenuBar ) menubar); 39 } 40 41 public void addComponent (Object contents) 42 { 43 if (contents instanceof gnu.lists.FString || contents instanceof String ) 44 getContentPane().add(new JLabel(contents.toString())); 45 else if (contents instanceof AbstractSequence) 46 { 47 AbstractSequence seq = (AbstractSequence) contents; 48 for (int iter = seq.startPos(); (iter = seq.nextPos(iter)) != 0; ) 49 addComponent(seq.getPosPrevious(iter)); 50 } 51 else if (contents instanceof Viewable) 52 ((Viewable) contents).makeView(getDisplay(), getContentPane()); 53 else if (contents instanceof Paintable) 54 getContentPane().add(new SwingPaintable((Paintable) contents)); 55 else if (contents != null) 56 getContentPane().add((Component ) contents); 57 } 58 59 public void open () 60 { 61 pack(); 62 setVisible(true); 63 } 64 } 65 | Popular Tags |