home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JDPMain.jar / JDPTabSelectPanel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-01-12  |  7.5 KB  |  455 lines

  1. import java.awt.BorderLayout;
  2. import java.awt.CardLayout;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Event;
  7. import java.awt.Font;
  8. import java.awt.Image;
  9. import java.awt.Panel;
  10.  
  11. public class JDPTabSelectPanel extends Panel {
  12.    public static boolean activated;
  13.    public static final String[] iconNames;
  14.    JDPUser user;
  15.    JDPMenuStruct menu;
  16.    JDPTabSelectTopPanel tabPanel;
  17.    JDPImageLoader imageLoader;
  18.    Panel cardPanel;
  19.    CardLayout cardLayout;
  20.    String[] titles;
  21.    Panel[] placePanel;
  22.    Panel[] tabpanels;
  23.    boolean ismenu;
  24.    int initPanel = -1;
  25.    Font currentFont;
  26.    static Image defaultIconImage;
  27.    Image iconImage;
  28.    int[] iconNumbers;
  29.    String menuTitle = "";
  30.  
  31.    public void setTabname(int var1, String var2) {
  32.       if (var1 < this.menu.menudesc.length) {
  33.          this.menu.menudesc[var1] = var2;
  34.          this.reloadTab();
  35.       }
  36.  
  37.    }
  38.  
  39.    public int[] getTabIcons() {
  40.       if (this.iconNumbers == null) {
  41.          this.iconNumbers = new int[this.getTabcount()];
  42.  
  43.          for(int var1 = 0; var1 < this.getTabcount(); ++var1) {
  44.             this.iconNumbers[var1] = -1;
  45.          }
  46.       }
  47.  
  48.       return this.iconNumbers;
  49.    }
  50.  
  51.    public static String[] getTabIconList() {
  52.       return iconNames;
  53.    }
  54.  
  55.    public void setTabIcon(int var1, int var2) {
  56.       this.initIconNumbers();
  57.       this.iconNumbers[var1] = var2;
  58.       this.tabPanel.repaint();
  59.    }
  60.  
  61.    public int getTabIcon(int var1) {
  62.       this.initIconNumbers();
  63.       return this.iconNumbers[var1];
  64.    }
  65.  
  66.    public void setTabIcon(int var1, String var2) {
  67.       this.initIconNumbers();
  68.       if (var2 != null) {
  69.          for(int var3 = 0; var3 < iconNames.length; ++var3) {
  70.             if (var2.equals(iconNames[var3])) {
  71.                this.iconNumbers[var1] = var3 - 1;
  72.             }
  73.          }
  74.       }
  75.  
  76.       this.tabPanel.repaint();
  77.    }
  78.  
  79.    public void reloadTab() {
  80.       if (this.tabPanel != null) {
  81.          this.tabPanel.layout();
  82.          this.tabPanel.loadMenuTitles();
  83.          this.tabPanel.repaint();
  84.       }
  85.  
  86.    }
  87.  
  88.    public void loadPrevTab() {
  89.       this.tabPanel.loadPrevTab();
  90.    }
  91.  
  92.    public void setIconImagePath(String var1) {
  93.       this.imageLoader = new JDPImageLoader(this.user, this, var1);
  94.       (new Thread(this.imageLoader)).start();
  95.    }
  96.  
  97.    public boolean isSelected(int var1) {
  98.       return this.tabPanel != null ? this.tabPanel.isSelected(var1) : false;
  99.    }
  100.  
  101.    public void setTabcolor(int var1, Color var2, Color var3) {
  102.       if (var1 < this.menu.menutextcolor.length) {
  103.          this.menu.menutextcolor[var1] = JDPUtils._cvtbcolor(var2);
  104.          this.menu.menutabcolor[var1] = JDPUtils._cvtbcolor(var3);
  105.          this.tabPanel.repaint();
  106.       }
  107.  
  108.    }
  109.  
  110.    public String getSelectedItem() {
  111.       return this.tabPanel != null ? this.tabPanel.getSelectedItem() : this.menu.menudesc[this.initPanel];
  112.    }
  113.  
  114.    public Component add(Component var1, String var2) {
  115.       byte var3 = 1;
  116.       if (this.placePanel == null || this.placePanel[0] == null) {
  117.          var3 = 0;
  118.       }
  119.  
  120.       String[] var4 = new String[this.titles.length + var3];
  121.       Panel[] var5 = new Panel[this.titles.length + var3];
  122.       String[] var6 = this.getTabnames();
  123.  
  124.       for(int var7 = 0; var7 < var4.length - 1; ++var7) {
  125.          var4[var7] = var6[var7];
  126.          var5[var7] = this.tabpanels[var7];
  127.       }
  128.  
  129.       var4[var4.length - 1] = var2;
  130.       var5[var4.length - 1] = new Panel();
  131.       var5[var4.length - 1].setLayout(new BorderLayout());
  132.       var5[var4.length - 1].add("Center", var1);
  133.       this.loadNewTabs(var4, var5, "North");
  134.       this.tabPanel.currentsel = var4.length - 1;
  135.       this.tabPanel.loadMenuTitles();
  136.       this.tabPanel.repaint();
  137.       return (Component)this;
  138.    }
  139.  
  140.    public void select(int var1) {
  141.       if (this.tabPanel != null) {
  142.          this.tabPanel.select(var1);
  143.          this.tabPanel.loadMenuTitles();
  144.          this.tabPanel.repaint();
  145.       }
  146.  
  147.    }
  148.  
  149.    public void select(String var1) {
  150.       if (this.tabPanel != null) {
  151.          for(int var2 = 0; var2 < this.titles.length; ++var2) {
  152.             if (var1.equals(this.titles[var2])) {
  153.                this.tabPanel.select(var2);
  154.                this.tabPanel.loadMenuTitles();
  155.                this.tabPanel.repaint();
  156.                return;
  157.             }
  158.          }
  159.       }
  160.  
  161.    }
  162.  
  163.    public void setFont(Font var1) {
  164.       this.currentFont = var1;
  165.       if (this.tabPanel != null) {
  166.          this.tabPanel.setFont(var1);
  167.          ((Container)this).layout();
  168.          ((Component)this).paintAll(((Component)this).getGraphics());
  169.       }
  170.  
  171.    }
  172.  
  173.    public Font getFont() {
  174.       return this.currentFont == null ? this.user.plainFont : this.currentFont;
  175.    }
  176.  
  177.    public void removeTab(Component var1) {
  178.       for(int var2 = 0; var2 < this.tabpanels.length; ++var2) {
  179.          if (this.tabpanels[var2].getComponent(0).equals(var1)) {
  180.             this.tabpanels[var2].remove(var1);
  181.             String[] var3 = new String[this.titles.length - 1];
  182.             Panel[] var4 = new Panel[this.titles.length - 1];
  183.  
  184.             for(int var5 = 0; var5 < var2; ++var5) {
  185.                var3[var5] = this.titles[var5];
  186.                var4[var5] = this.tabpanels[var5];
  187.             }
  188.  
  189.             for(int var6 = var2 + 1; var6 < this.titles.length; ++var6) {
  190.                var3[var6 - 1] = this.titles[var6];
  191.                var4[var6 - 1] = this.tabpanels[var6];
  192.             }
  193.  
  194.             if (var3.length == 0) {
  195.                var3 = new String[]{"Tab 1"};
  196.                var4 = new Panel[1];
  197.             }
  198.  
  199.             this.loadNewTabs(var3, var4, "North");
  200.             this.tabPanel.currentsel = 0;
  201.             return;
  202.          }
  203.       }
  204.  
  205.    }
  206.  
  207.    static {
  208.       iconNames = JDPButton.iconNames;
  209.    }
  210.  
  211.    public void setTitle(String var1) {
  212.       this.menuTitle = var1;
  213.    }
  214.  
  215.    public int getSelectedIndex() {
  216.       return this.tabPanel != null ? this.tabPanel.getSelectedIndex() : 0;
  217.    }
  218.  
  219.    public boolean loadObject(String var1) {
  220.       return this.tabPanel != null ? this.tabPanel.loadObject(var1) : false;
  221.    }
  222.  
  223.    public String[] getTabnames() {
  224.       return this.menu.menudesc;
  225.    }
  226.  
  227.    public void removeAllTabs() {
  228.       ((Container)this).removeAll();
  229.       if (this.cardPanel != null) {
  230.          this.cardPanel.removeAll();
  231.  
  232.          for(int var1 = 0; var1 < this.placePanel.length; ++var1) {
  233.             if (this.placePanel[0] != null) {
  234.                this.placePanel[0].removeAll();
  235.             }
  236.  
  237.             this.placePanel[0] = null;
  238.          }
  239.  
  240.          this.placePanel = null;
  241.          this.cardPanel = null;
  242.          this.tabpanels = null;
  243.          this.titles = new String[1];
  244.          this.titles[0] = "Tab 1";
  245.       }
  246.  
  247.    }
  248.  
  249.    public void loadNewTabs(String[] var1, Panel[] var2, String var3) {
  250.       this.removeAllTabs();
  251.       this.titles = var1;
  252.       this.tabpanels = var2;
  253.       String[] var4 = this.menu.menutextcolor;
  254.       String[] var5 = this.menu.menutabcolor;
  255.       this.menu.menudesc = this.titles;
  256.       this.menu.menuname = new String[this.titles.length];
  257.       this.menu.menutype = new String[this.titles.length];
  258.       this.menu.menutextcolor = new String[this.titles.length];
  259.       this.menu.menutabcolor = new String[this.titles.length];
  260.       if (this.tabPanel != null) {
  261.          this.tabPanel.panelLoaded = null;
  262.       }
  263.  
  264.       if (this.cardPanel == null) {
  265.          this.cardPanel = new Panel();
  266.          this.cardLayout = new CardLayout();
  267.          this.cardPanel.setLayout(this.cardLayout);
  268.          ((Container)this).add("Center", this.cardPanel);
  269.       }
  270.  
  271.       this.placePanel = new Panel[this.titles.length];
  272.  
  273.       for(int var6 = 0; var6 < this.titles.length; ++var6) {
  274.          if (var2 != null && var2[var6] != null) {
  275.             this.placePanel[var6] = new Panel();
  276.             this.placePanel[var6].setLayout(new BorderLayout());
  277.             this.cardPanel.add(Integer.toString(var6), this.placePanel[var6]);
  278.             this.placePanel[var6].add("Center", this.tabpanels[var6]);
  279.          }
  280.  
  281.          this.menu.menuname[var6] = "0";
  282.          this.menu.menutype[var6] = "P";
  283.          if (var4 != null && var4.length > var6) {
  284.             this.menu.menutextcolor[var6] = var4[var6];
  285.             this.menu.menutabcolor[var6] = var5[var6];
  286.          } else {
  287.             this.menu.menutextcolor[var6] = "Black";
  288.             this.menu.menutabcolor[var6] = "LightGray";
  289.          }
  290.       }
  291.  
  292.       if (var3.compareTo("North") == 0) {
  293.          this.tabPanel = new JDPTabSelectTopPanel(this.user, this, this.menu, var3, (JDPTabSelectSidePanel)null);
  294.          ((Container)this).add("North", this.tabPanel);
  295.          ((Container)this).add("West", new JDPTabSelectSidePanel(this.user, this, "West", var3));
  296.       } else {
  297.          JDPTabSelectSidePanel var7 = new JDPTabSelectSidePanel(this.user, this, "North", var3);
  298.          this.tabPanel = new JDPTabSelectTopPanel(this.user, this, this.menu, var3, var7);
  299.          ((Container)this).add("West", this.tabPanel);
  300.          ((Container)this).add("North", var7);
  301.       }
  302.  
  303.       ((Container)this).add("East", new JDPTabSelectSidePanel(this.user, this, "East", var3));
  304.       ((Container)this).add("South", new JDPTabSelectSidePanel(this.user, this, "South", var3));
  305.       this.initIconNumbers();
  306.       ((Container)this).layout();
  307.       ((Component)this).paintAll(((Component)this).getGraphics());
  308.       if (this.tabPanel != null) {
  309.          this.tabPanel.loadMenuTitles();
  310.          this.tabPanel.repaint();
  311.          this.tabPanel.totaltabs = var1.length;
  312.       }
  313.  
  314.       if (this.placePanel[0] != null) {
  315.          this.placePanel[0].paintAll(this.placePanel[0].getGraphics());
  316.       }
  317.  
  318.    }
  319.  
  320.    void initIconNumbers() {
  321.       if (this.iconNumbers == null) {
  322.          this.iconNumbers = new int[100];
  323.          int var1 = 0;
  324.  
  325.          do {
  326.             this.iconNumbers[var1] = -1;
  327.             ++var1;
  328.          } while(var1 < 100);
  329.       }
  330.  
  331.    }
  332.  
  333.    public JDPTabSelectPanel(JDPUser var1, String[] var2, Panel[] var3, String var4) {
  334.       activated = JDPUser.classactivated;
  335.       if (!activated) {
  336.          System.out.println("Software Violation - this class may only be used in conjunction with JDesignerPro.");
  337.       } else {
  338.          this.titles = var2;
  339.          this.tabpanels = var3;
  340.          this.ismenu = false;
  341.          defaultIconImage = JDPButton.defaultIconImage;
  342.          this.iconImage = defaultIconImage;
  343.          this.user = var1;
  344.          this.menu = new JDPMenuStruct();
  345.          this.menu.initmenu = "0";
  346.          ((Container)this).setLayout(new BorderLayout());
  347.          this.loadNewTabs(var2, var3, var4);
  348.          this.initPanel = 0;
  349.       }
  350.    }
  351.  
  352.    public JDPTabSelectPanel(JDPUser var1, JDPMenuStruct var2, String var3) {
  353.       activated = JDPUser.classactivated;
  354.       if (!activated) {
  355.          System.out.println("Software Violation - this class may only be used in conjunction with JDesignerPro.");
  356.       } else {
  357.          this.ismenu = true;
  358.          defaultIconImage = JDPButton.defaultIconImage;
  359.          this.iconImage = defaultIconImage;
  360.          this.user = var1;
  361.          this.menu = var2;
  362.          ((Container)this).setLayout(new BorderLayout());
  363.          this.setFont(var1.plainFont);
  364.          this.currentFont = var1.plainFont;
  365.          this.cardPanel = new Panel();
  366.          this.cardPanel.setLayout(new CardLayout());
  367.          this.placePanel = new Panel[var2.menuname.length];
  368.  
  369.          for(int var4 = 0; var4 < var2.menuname.length; ++var4) {
  370.             this.placePanel[var4] = new Panel();
  371.             this.placePanel[var4].setLayout(new BorderLayout(0, 0));
  372.             this.cardPanel.add(Integer.toString(var4), this.placePanel[var4]);
  373.             if (var2.menuname[var4].compareTo(var2.initmenu) == 0 && this.initPanel < 0) {
  374.                this.initPanel = var4;
  375.             }
  376.          }
  377.  
  378.          this.cardPanel.add("Blank", new Panel());
  379.          ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "Blank");
  380.          ((Container)this).add("Center", this.cardPanel);
  381.          if (var2.menudesc[this.initPanel].trim().length() == 0) {
  382.             ((Container)this).add("North", new JDPTabSelectSidePanel(var1, this, "North", ""));
  383.             ((Container)this).add("West", new JDPTabSelectSidePanel(var1, this, "West", ""));
  384.             this.placePanel[0].add("Center", new JDPPanelLoader(var1, var2.menuobject[this.initPanel], var2.menuparm[this.initPanel], (boolean[])null, 0));
  385.             this.placePanel[0].paintAll(this.placePanel[0].getGraphics());
  386.             ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "0");
  387.          } else if (var3.compareTo("North") == 0) {
  388.             this.tabPanel = new JDPTabSelectTopPanel(var1, this, var2, var3, (JDPTabSelectSidePanel)null);
  389.             ((Container)this).add("North", this.tabPanel);
  390.             ((Container)this).add("West", new JDPTabSelectSidePanel(var1, this, "West", var3));
  391.          } else {
  392.             JDPTabSelectSidePanel var5 = new JDPTabSelectSidePanel(var1, this, "North", var3);
  393.             this.tabPanel = new JDPTabSelectTopPanel(var1, this, var2, var3, var5);
  394.             ((Container)this).add("West", this.tabPanel);
  395.             ((Container)this).add("North", var5);
  396.          }
  397.  
  398.          ((Container)this).add("East", new JDPTabSelectSidePanel(var1, this, "East", var3));
  399.          ((Container)this).add("South", new JDPTabSelectSidePanel(var1, this, "South", var3));
  400.          this.initIconNumbers();
  401.       }
  402.    }
  403.  
  404.    public int getTabcount() {
  405.       return this.placePanel.length;
  406.    }
  407.  
  408.    public void loadNextTab() {
  409.       this.tabPanel.loadNextTab();
  410.    }
  411.  
  412.    public boolean handleEvent(Event var1) {
  413.       switch (var1.id) {
  414.          case 1001:
  415.             if (this.ismenu) {
  416.                return true;
  417.             }
  418.  
  419.             return false;
  420.          case 1002:
  421.          case 1003:
  422.          default:
  423.             return false;
  424.          case 1004:
  425.             if (!this.ismenu) {
  426.                return false;
  427.             } else {
  428.                if (var1.target.equals(this) && this.tabPanel != null && this.tabPanel.menuindex != null) {
  429.                   int var2 = this.tabPanel.menuindex[this.tabPanel.currentsel];
  430.                   Component[] var3 = this.placePanel[var2].getComponents();
  431.                   if (var3 != null && var3.length > 0) {
  432.                      Component[] var4 = ((Container)var3[0]).getComponents();
  433.                      if (var4 != null && var4.length > 0 && var4[0] instanceof JDPPanelLoader) {
  434.                         var4 = ((Container)var4[0]).getComponents();
  435.                      }
  436.  
  437.                      for(int var5 = 0; var5 < var4.length; ++var5) {
  438.                         if (var4[var5] instanceof JDPClassLayout) {
  439.                            var4[var5].requestFocus();
  440.                            return true;
  441.                         }
  442.                      }
  443.                   }
  444.                }
  445.  
  446.                return true;
  447.             }
  448.       }
  449.    }
  450.  
  451.    public boolean selectObject(String var1) {
  452.       return this.tabPanel != null ? this.tabPanel.selectObject(var1) : false;
  453.    }
  454. }
  455.