home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / text / html / FormView.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  6.8 KB  |  239 lines

  1. package javax.swing.text.html;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Point;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.net.MalformedURLException;
  8. import java.net.URL;
  9. import java.net.URLEncoder;
  10. import javax.swing.AbstractButton;
  11. import javax.swing.ButtonModel;
  12. import javax.swing.ComboBoxModel;
  13. import javax.swing.ImageIcon;
  14. import javax.swing.JButton;
  15. import javax.swing.JCheckBox;
  16. import javax.swing.JComboBox;
  17. import javax.swing.JComponent;
  18. import javax.swing.JList;
  19. import javax.swing.JPasswordField;
  20. import javax.swing.JRadioButton;
  21. import javax.swing.JScrollPane;
  22. import javax.swing.JTextArea;
  23. import javax.swing.JTextField;
  24. import javax.swing.JToggleButton;
  25. import javax.swing.ListModel;
  26. import javax.swing.ListSelectionModel;
  27. import javax.swing.text.AttributeSet;
  28. import javax.swing.text.ComponentView;
  29. import javax.swing.text.Document;
  30. import javax.swing.text.Element;
  31. import javax.swing.text.JTextComponent;
  32. import javax.swing.text.StyleConstants;
  33. import javax.swing.text.View;
  34. import javax.swing.text.html.HTML.Attribute;
  35. import javax.swing.text.html.HTML.Tag;
  36.  
  37. public class FormView extends ComponentView implements ActionListener {
  38.    public static final String SUBMIT = new String("Submit Query");
  39.    public static final String RESET = new String("Reset");
  40.  
  41.    public FormView(Element var1) {
  42.       super(var1);
  43.    }
  44.  
  45.    // $FF: synthetic method
  46.    static String access$0(FormView var0, Point var1) {
  47.       return var0.getImageData(var1);
  48.    }
  49.  
  50.    public void actionPerformed(ActionEvent var1) {
  51.       Element var2 = ((View)this).getElement();
  52.       StringBuffer var3 = new StringBuffer();
  53.       HTMLDocument var4 = (HTMLDocument)((View)this).getDocument();
  54.       AttributeSet var5 = var2.getAttributes();
  55.       String var6 = (String)var5.getAttribute(Attribute.TYPE);
  56.       if (var6.equals("submit")) {
  57.          var4.getFormData(var3, var2);
  58.          this.submitData(var3.toString());
  59.       } else if (var6.equals("reset")) {
  60.          var4.resetForm(var2);
  61.       } else if (var6.equals("text") || var6.equals("password")) {
  62.          if (var4.isLastTextOrPasswordField(var2)) {
  63.             var4.getFormData(var3, var2);
  64.             this.submitData(var3.toString());
  65.          } else {
  66.             ((ComponentView)this).getComponent().transferFocus();
  67.          }
  68.       }
  69.  
  70.    }
  71.  
  72.    protected Component createComponent() {
  73.       AttributeSet var1 = ((View)this).getElement().getAttributes();
  74.       HTML.Tag var2 = (HTML.Tag)var1.getAttribute(StyleConstants.NameAttribute);
  75.       Object var3 = null;
  76.       Object var4 = var1.getAttribute(StyleConstants.ModelAttribute);
  77.       if (var2 == Tag.INPUT) {
  78.          var3 = this.createInputComponent(var1, var4);
  79.       } else if (var2 == Tag.SELECT) {
  80.          if (var4 instanceof OptionListModel) {
  81.             JList var5 = new JList((ListModel)var4);
  82.             int var6 = HTML.getIntegerAttributeValue(var1, Attribute.SIZE, 1);
  83.             var5.setVisibleRowCount(var6);
  84.             ((JComponent)var5).setOpaque(false);
  85.             var5.setSelectionModel((ListSelectionModel)var4);
  86.             var3 = new JScrollPane(var5);
  87.          } else {
  88.             var3 = new JComboBox((ComboBoxModel)var4);
  89.          }
  90.       } else if (var2 == Tag.TEXTAREA) {
  91.          JTextArea var8 = new JTextArea((Document)var4);
  92.          int var9 = HTML.getIntegerAttributeValue(var1, Attribute.ROWS, 0);
  93.          var8.setRows(var9);
  94.          int var7 = HTML.getIntegerAttributeValue(var1, Attribute.COLS, 0);
  95.          var8.setColumns(var7);
  96.          var3 = new JScrollPane(var8, 22, 32);
  97.       }
  98.  
  99.       if (var3 != null) {
  100.          ((JComponent)var3).setAlignmentY(1.0F);
  101.          ((JComponent)var3).setOpaque(false);
  102.       }
  103.  
  104.       return (Component)var3;
  105.    }
  106.  
  107.    private JComponent createInputComponent(AttributeSet var1, Object var2) {
  108.       Object var3 = null;
  109.       String var4 = (String)var1.getAttribute(Attribute.TYPE);
  110.       if (!var4.equals("submit") && !var4.equals("reset")) {
  111.          if (var4.equals("image")) {
  112.             String var11 = (String)var1.getAttribute(Attribute.SRC);
  113.  
  114.             JButton var16;
  115.             try {
  116.                URL var7 = ((HTMLDocument)((View)this).getElement().getDocument()).getBase();
  117.                URL var8 = new URL(var7, var11);
  118.                ImageIcon var9 = new ImageIcon(var8);
  119.                var16 = new JButton(var9);
  120.             } catch (MalformedURLException var10) {
  121.                var16 = new JButton(var11);
  122.             }
  123.  
  124.             if (var2 != null) {
  125.                ((AbstractButton)var16).setModel((ButtonModel)var2);
  126.                ((Component)var16).addMouseListener(new MouseEventListener(this));
  127.             }
  128.  
  129.             var3 = var16;
  130.          } else if (var4.equals("checkbox")) {
  131.             var3 = new JCheckBox();
  132.             if (var2 != null) {
  133.                boolean var12 = var1.getAttribute(Attribute.CHECKED) != null;
  134.                ((JToggleButton.ToggleButtonModel)var2).setSelected(var12);
  135.                ((JCheckBox)var3).setModel((JToggleButton.ToggleButtonModel)var2);
  136.             }
  137.          } else if (var4.equals("radio")) {
  138.             var3 = new JRadioButton();
  139.             if (var2 != null) {
  140.                boolean var13 = var1.getAttribute(Attribute.CHECKED) != null;
  141.                ((JToggleButton.ToggleButtonModel)var2).setSelected(var13);
  142.                ((JRadioButton)var3).setModel((JToggleButton.ToggleButtonModel)var2);
  143.             }
  144.          } else if (var4.equals("text")) {
  145.             JTextField var14 = new JTextField();
  146.             var3 = var14;
  147.             if (var2 != null) {
  148.                ((JTextComponent)var14).setDocument((Document)var2);
  149.             }
  150.  
  151.             int var17 = HTML.getIntegerAttributeValue(var1, Attribute.SIZE, -1);
  152.             if (var17 > 0) {
  153.                var14.setColumns(var17);
  154.             }
  155.  
  156.             String var19 = (String)var1.getAttribute(Attribute.VALUE);
  157.             if (var19 != null) {
  158.                ((JTextComponent)var14).setText(var19);
  159.             }
  160.  
  161.             var14.addActionListener(this);
  162.          } else if (var4.equals("password")) {
  163.             JPasswordField var15 = new JPasswordField();
  164.             var3 = var15;
  165.             if (var2 != null) {
  166.                ((JTextComponent)var15).setDocument((Document)var2);
  167.             }
  168.  
  169.             int var18 = HTML.getIntegerAttributeValue(var1, Attribute.SIZE, -1);
  170.             if (var18 > 0) {
  171.                ((JTextField)var15).setColumns(var18);
  172.             }
  173.  
  174.             String var20 = (String)var1.getAttribute(Attribute.VALUE);
  175.             if (var20 != null) {
  176.                ((JTextComponent)var15).setText(var20);
  177.             }
  178.  
  179.             ((JTextField)var15).addActionListener(this);
  180.          }
  181.       } else {
  182.          String var5 = (String)var1.getAttribute(Attribute.VALUE);
  183.          if (var5 == null) {
  184.             if (var4.equals("submit")) {
  185.                var5 = SUBMIT;
  186.             } else {
  187.                var5 = RESET;
  188.             }
  189.          }
  190.  
  191.          JButton var6 = new JButton(var5);
  192.          if (var2 != null) {
  193.             ((AbstractButton)var6).setModel((ButtonModel)var2);
  194.             ((AbstractButton)var6).addActionListener(this);
  195.          }
  196.  
  197.          var3 = var6;
  198.       }
  199.  
  200.       return (JComponent)var3;
  201.    }
  202.  
  203.    private String getImageData(Point var1) {
  204.       String var2 = var1.x + ":" + var1.y;
  205.       int var3 = var2.indexOf(58);
  206.       String var4 = var2.substring(0, var3);
  207.       ++var3;
  208.       String var5 = var2.substring(var3);
  209.       String var6 = (String)((View)this).getElement().getAttributes().getAttribute(Attribute.NAME);
  210.       String var7;
  211.       if (var6 != null && !var6.equals("")) {
  212.          var6 = URLEncoder.encode(var6);
  213.          var7 = var6 + ".x" + "=" + var4 + "&" + var6 + ".y" + "=" + var5;
  214.       } else {
  215.          var7 = "x=" + var4 + "&y=" + var5;
  216.       }
  217.  
  218.       return var7;
  219.    }
  220.  
  221.    protected void imageSubmit(String var1) {
  222.       StringBuffer var2 = new StringBuffer();
  223.       Element var3 = ((View)this).getElement();
  224.       HTMLDocument var4 = (HTMLDocument)var3.getDocument();
  225.       var4.getFormData(var2, ((View)this).getElement());
  226.       if (var2.length() > 0) {
  227.          var2.append('&');
  228.       }
  229.  
  230.       var2.append(var1);
  231.       this.submitData(var2.toString());
  232.    }
  233.  
  234.    protected void submitData(String var1) {
  235.       SubmitThread var2 = new SubmitThread(this, ((View)this).getElement(), var1);
  236.       ((Thread)var2).start();
  237.    }
  238. }
  239.