Ignore:
Timestamp:
2003-09-24T16:09:13+12:00 (21 years ago)
Author:
mdewsnip
Message:

Further along the tooltip highway. Hacked up the Dictionary code, and are updating the classes to use the new code.

Location:
trunk/gli/src/org/greenstone/gatherer/cdm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/gli/src/org/greenstone/gatherer/cdm/GeneralManager.java

    r5357 r5529  
    2525 *########################################################################
    2626 */
     27
    2728package org.greenstone.gatherer.cdm;
     29
    2830import java.awt.*;
    2931import java.awt.event.*;
     
    7072    // Creation
    7173    JPanel tree_pane = new JPanel();
    72     JLabel title = new JLabel(get("CDM.GUI.Design_Topics"));
     74    JLabel title = new JLabel();
     75    Gatherer.dictionary.setText(title, "CDM.GUI.Design_Topics", null);
    7376    tree = new DesignTree();
    7477    view = controls;
     
    106109    /** Refresh the values on our controls that could be stale due to changes in other components. */
    107110    public void gainFocus() {
    108     if(view != null) {
     111    if (view != null) {
    109112        view.gainFocus();
    110113    }
     
    113116    /** Saves the state of the controls in the current view. */
    114117    public void loseFocus() {
    115     if(view != null) {
     118    if (view != null) {
    116119        view.loseFocus();
    117120    }
    118     }
    119 
    120     /** Overloaded to call get with both a key and an empty argument array.
    121      * @param key a String which is mapped to a key within the dictionary
    122      * @return a String which has been referenced by the key and that either contains no argument fields, or has had the argument fields automatically populated with arguments provided in the get call
    123      */
    124     private String get(String key) {
    125     return get(key, null);
    126     }
    127 
    128     /** Used to retrieve a property value from the Locale specific ResourceBundle, based upon the key and arguments supplied. If the key cannot be found or if some other part of the call fails a default (English) error message is returned. <BR>
    129      * Here the get recieves a second argument which is an array of Strings used to populate argument fields, denoted {<I>n</I>}, within the value String returned. Note that argument numbers greater than or equal to 32 are automatically mapped to the formatting String named Farg<I>n</I>.
    130      * @param key A <strong>String</strong> which is mapped to a initial String within the ResourceBundle.
    131      * @param args A <strong>String[]</strong> used to populate argument fields within the complete String.
    132      * @return A <strong>String</strong> which has been referenced by the key String and that either contains no argument fields, or has had the argument fields automatiically populated with formatting Strings of with argument String provided in the get call.
    133      * @see org.greenstone.gatherer.Gatherer
    134      * @see org.greenstone.gatherer.Dictionary
    135      */
    136     private String get(String key, String args[]) {
    137     if(key.indexOf('.') == -1) {
    138         key = "CDM.GUI." + key;
    139     }
    140     return Gatherer.dictionary.get(key, args);
    141121    }
    142122
     
    191171        beta_collectionmeta = new CollectionMeta(CollectionDesignManager.collect_config.getBeta());
    192172        public_collectionmeta = new CollectionMeta(CollectionDesignManager.collect_config.getPublic());
    193        
     173
    194174        // Creation
    195175        JPanel instruction_panel = new JPanel();
    196         title_label = new JLabel("CDM.General.Title");
     176        title_label = new JLabel();
    197177        title_label.setHorizontalAlignment(JLabel.CENTER);
    198         instructions_textarea = new JTextArea("CDM.General.Instructions");
     178        Gatherer.dictionary.setText(title_label, "CDM.General.Title", null);
     179
     180        instructions_textarea = new JTextArea();
    199181        instructions_textarea.setCaretPosition(0);
    200182        instructions_textarea.setEditable(false);
     
    202184        instructions_textarea.setRows(6);
    203185        instructions_textarea.setWrapStyleWord(true);
     186        Gatherer.dictionary.setText(instructions_textarea, "CDM.General.Instructions", null);
    204187
    205188        JPanel all_details_panel = new JPanel();
    206189        JPanel details_panel = new JPanel();
    207190        JPanel creator_panel = new JPanel();
    208         creator_label = new JLabel("CDM.General.Email.Creator");
     191        creator_label = new JLabel();
    209192        creator_label.setPreferredSize(LABEL_SIZE);
     193        Gatherer.dictionary.setText(creator_label, "CDM.General.Email.Creator", null);
     194
    210195        creator_emailfield = new EmailField(Gatherer.config.getColor("coloring.error_background", false));
     196        Gatherer.dictionary.setTooltip(creator_emailfield, "CDM.General.Email.Creator_Tooltip");
     197
    211198        JPanel maintainer_panel = new JPanel();
    212         maintainer_label = new JLabel("CDM.General.Email.Maintainer");
     199        maintainer_label = new JLabel();
    213200        maintainer_label.setPreferredSize(LABEL_SIZE);
     201        Gatherer.dictionary.setText(maintainer_label, "CDM.General.Email.Maintainer", null);
     202
    214203        maintainer_emailfield = new EmailField(Gatherer.config.getColor("coloring.error_background", false));
    215         public_checkbox = new JCheckBox("CDM.General.Access", public_collectionmeta.getValue(CollectionMeta.TEXT).equals(CollectionConfiguration.TRUE_STR));
    216         beta_checkbox = new JCheckBox("CDM.General.Beta", beta_collectionmeta.getValue(CollectionMeta.TEXT).equals(CollectionConfiguration.TRUE_STR));
     204        Gatherer.dictionary.setTooltip(maintainer_emailfield, "CDM.General.Email.Maintainer_Tooltip");
     205        public_checkbox = new JCheckBox("", public_collectionmeta.getValue(CollectionMeta.TEXT).equals(CollectionConfiguration.TRUE_STR));
     206        Gatherer.dictionary.setText(public_checkbox, "CDM.General.Access", null);
     207        beta_checkbox = new JCheckBox("", beta_collectionmeta.getValue(CollectionMeta.TEXT).equals(CollectionConfiguration.TRUE_STR));
     208        Gatherer.dictionary.setText(beta_checkbox, "CDM.General.Beta", null);
    217209        JPanel name_panel = new JPanel();
    218         name_label = new JLabel("CDM.General.Collection_Name");
     210        name_label = new JLabel();
    219211        name_label.setPreferredSize(LABEL_SIZE);
    220         name_textfield = new JTextField();
     212        Gatherer.dictionary.setText(name_label, "CDM.General.Collection_Name", null);
     213        name_textfield = new JTextField("CDM.General.Collection_Name");
     214        Gatherer.dictionary.setTooltip(name_textfield, "CDM.General.Collection_Name_Tooltip");
    221215        JPanel icon_panel = new JPanel();
    222         icon_label = new JLabel("CDM.General.Icon_Collection");
     216        icon_label = new JLabel();
    223217        icon_label.setPreferredSize(LABEL_SIZE);
    224         icon_textfield = new JTextField();
     218        Gatherer.dictionary.setText(icon_label, "CDM.General.Icon_Collection", null);
     219        icon_textfield = new JTextField("CDM.General.Icon_Collection");
     220        Gatherer.dictionary.setTooltip(icon_textfield, "CDM.General.Icon_Collection_Tooltip");
    225221        JPanel small_icon_panel = new JPanel();
    226222        small_icon_label = new JLabel("CDM.General.Icon_Collection_Small");
    227223        small_icon_label.setPreferredSize(LABEL_SIZE);
    228         small_icon_textfield = new JTextField();
     224        Gatherer.dictionary.setText(small_icon_label, "CDM.General.Icon_Collection_Small", null);
     225        small_icon_textfield = new JTextField("CDM.General.Icon_Collection_Small");
     226        Gatherer.dictionary.setTooltip(small_icon_textfield, "CDM.General.Icon_Collection_Small_Tooltip");
    229227        JPanel description_panel = new JPanel();
    230         description_label = new JLabel("CDM.General.Collection_Extra");
     228        description_label = new JLabel();
    231229        description_label.setPreferredSize(LABEL_SIZE);
     230        Gatherer.dictionary.setText(description_label, "CDM.General.Collection_Extra", null);
    232231        description_textarea = new JTextArea();
    233232        description_textarea.setBackground(Gatherer.config.getColor("coloring.editable_background", false));
     233        Gatherer.dictionary.setTooltip(description_textarea, "CDM.General.Collection_Extra_Tooltip");
    234234        // Connection
    235235        beta_checkbox.addActionListener(CollectionDesignManager.change_listener);
     
    241241        name_textfield.getDocument().addDocumentListener(CollectionDesignManager.change_listener);
    242242        small_icon_textfield.getDocument().addDocumentListener(CollectionDesignManager.change_listener);
    243         Gatherer.dictionary.register(beta_checkbox, null, false);
    244         Gatherer.dictionary.register(creator_label, null, false);
    245         Gatherer.dictionary.register(description_label, null, false);
    246         Gatherer.dictionary.register(icon_label, null, false);
    247         Gatherer.dictionary.register(instructions_textarea, null, false);
    248         Gatherer.dictionary.register(maintainer_label, null, false);
    249         Gatherer.dictionary.register(name_label, null, false);
    250         Gatherer.dictionary.register(public_checkbox, null, false);
    251         Gatherer.dictionary.register(small_icon_label, null, false);
    252         Gatherer.dictionary.register(title_label, null, false);
     243
    253244        // Layout
    254245        instruction_panel.setBorder(BorderFactory.createEmptyBorder(0,0,5,0));
     
    299290        add(all_details_panel, BorderLayout.CENTER);
    300291    }
     292
    301293    /** Destructor. */
    302294    public void destroy() {
    303         Gatherer.dictionary.deregister(beta_checkbox);
    304         Gatherer.dictionary.deregister(creator_label);
    305         Gatherer.dictionary.deregister(description_label);
    306         Gatherer.dictionary.deregister(icon_label);
    307         Gatherer.dictionary.deregister(instructions_textarea);
    308         Gatherer.dictionary.deregister(maintainer_label);
    309         Gatherer.dictionary.deregister(name_label);
    310         Gatherer.dictionary.deregister(public_checkbox);
    311         Gatherer.dictionary.deregister(small_icon_label);
    312         Gatherer.dictionary.deregister(title_label);
    313     }
     295    }
     296
    314297    /** Called to refresh the components. */
    315298    public void gainFocus() {
     
    361344    public DesignTree() {
    362345        super();
    363         root = new DesignNode("CDM.GUI.Root");
     346        root = new DesignNode("Root");
    364347        this.setModel(new DefaultTreeModel(root));
    365348        // Now add the design categories.
     
    390373    /** Constructor.
    391374     * @param object The <strong>Object</strong> assigned to this node.
    392           */
     375    */
    393376    public DesignNode(String object) {
    394377        super(object);
     
    398381     */
    399382    public String toString() {
    400         return get((String)getUserObject());
     383        return Gatherer.dictionary.get("CDM.GUI." + (String)getUserObject());
    401384    }
    402385    }
  • trunk/gli/src/org/greenstone/gatherer/cdm/PlugInManager.java

    r5342 r5529  
    145145    }
    146146    if(plugin.getName().equals(StaticStrings.ARCPLUG_STR) || plugin.getName().equals(StaticStrings.RECPLUG_STR)) {
    147         JOptionPane.showMessageDialog(Gatherer.g_man, get("CDM.Move.Fixed"), get("CDM.Move.Title"), JOptionPane.ERROR_MESSAGE);
     147        JOptionPane.showMessageDialog(Gatherer.g_man, Gatherer.dictionary.get("CDM.Move.Fixed"), Gatherer.dictionary.get("CDM.Move.Title"), JOptionPane.ERROR_MESSAGE);
    148148        return;
    149149    }
     
    182182        if(index < 0) {
    183183            String args[] = new String[2];
    184             args[0] = get("CDM.PlugInManager.PlugIn_Str");
     184            args[0] = Gatherer.dictionary.get("CDM.PlugInManager.PlugIn_Str");
    185185            args[1] = plugin.getName();
    186             JOptionPane.showMessageDialog(Gatherer.g_man, get("CDM.Move.At_Top", args), get("CDM.Move.Title"), JOptionPane.ERROR_MESSAGE);
     186            JOptionPane.showMessageDialog(Gatherer.g_man, Gatherer.dictionary.get("CDM.Move.At_Top", args), Gatherer.dictionary.get("CDM.Move.Title"), JOptionPane.ERROR_MESSAGE);
    187187            return;
    188188        }
     
    197197            String args[] = new String[1];
    198198            args[0] = plugin.getName();
    199             JOptionPane.showMessageDialog(Gatherer.g_man, get("CDM.Move.Cannot", args), get("CDM.Move.Title"), JOptionPane.ERROR_MESSAGE);
     199            JOptionPane.showMessageDialog(Gatherer.g_man, Gatherer.dictionary.get("CDM.Move.Cannot", args), Gatherer.dictionary.get("CDM.Move.Title"), JOptionPane.ERROR_MESSAGE);
    200200            // Still not going to move RecPlug or ArcPlug.
    201201            return;
     
    279279    }
    280280
    281     /* Retrieve a phrase from the dictionary based on a certain key.
    282      * @param key The search <strong>String</strong>.
    283      * @return The matching phrase from the Dictionary.
    284      */
    285     private String get(String key) {
    286     return get(key, (String[])null);
    287     }
    288    
    289     private String get(String key, String arg) {
    290     String args[] = new String[1];
    291     args[0] = arg;
    292     return get(key, args);
    293     }
    294 
    295     /* Retrieve a phrase from the dictionary based on a certain key and arguments.
    296      * @param key The search <strong>String</strong>.
    297      * @param args A <strong>String[]</strong> of arguments used to complete and format the choosen phrase.
    298      * @return The matching phrase from the Dictionary.
    299      */
    300     private String get(String key, String args[]) {
    301     if(key.indexOf(".") == -1) {
    302         key = "CDM.PlugInManager." + key;
    303     }
    304     return Gatherer.dictionary.get(key, args);
    305     }   
    306281
    307282    /** Retrieve a list of those plugins that are in library but not in the assigned plugins. */
     
    398373        String plugin_name = getPlugInName(plugin);
    399374        //Gatherer.println("Zero length argument xml detected for: " + plugin_name);
    400         JOptionPane.showMessageDialog(Gatherer.g_man, get("CDM.PlugInManager.PlugIn_XML_Parse_Failed", plugin_name), get("General.Error"), JOptionPane.ERROR_MESSAGE);
     375        JOptionPane.showMessageDialog(Gatherer.g_man, Gatherer.dictionary.get("CDM.PlugInManager.PlugIn_XML_Parse_Failed", plugin_name), Gatherer.dictionary.get("General.Error"), JOptionPane.ERROR_MESSAGE);
    401376        }
    402377    }
     
    435410    if(files != null) {
    436411        // Create a progress indicator.
    437         ParsingProgress progress = new ParsingProgress(get("CDM.PlugInManager.Parsing.Title"), get("CDM.PlugInManager.Parsing.Message"), files.length);
     412        ParsingProgress progress = new ParsingProgress(Gatherer.dictionary.get("CDM.PlugInManager.Parsing.Title"), Gatherer.dictionary.get("CDM.PlugInManager.Parsing.Message"), files.length);
    438413        for(int i = 0; i < files.length; i++) {
    439414        // We only want to check Perl Modules.
     
    565540    /** The area where the add, configure and remove buttons are placed. */
    566541    private JPanel button_pane = null;
    567     /** The region which divides the central portion of the view into list and controls. */
     542    /** The region which divides the central portion of the view into list and controls */
    568543    private JPanel central_pane = null;
    569544    /** The area where title label and instructions sit. */
     
    577552    /** The text area containing instructions on the use of this control. */
    578553    private JTextArea instructions = null;
     554
    579555    /** Constructor.
    580556     */
    581557    public PlugInControl() {
    582558        // Create
    583         add = new JButton(get("CDM.PlugInManager.Add"));
     559        add = new JButton();
    584560        add.setMnemonic(KeyEvent.VK_A);
     561        Gatherer.dictionary.setBoth(add, "CDM.PlugInManager.Add", "CDM.PlugInManager.Add_Tooltip");
     562
    585563        button_pane = new JPanel();
    586564        central_pane = new JPanel();
    587         configure = new JButton(get("CDM.PlugInManager.Configure"));
     565
     566        configure = new JButton();
    588567        configure.setEnabled(false);
    589568        configure.setMnemonic(KeyEvent.VK_C);
     569        Gatherer.dictionary.setBoth(configure, "CDM.PlugInManager.Configure", "CDM.PlugInManager.Configure_Tooltip");
     570
    590571        header_pane = new JPanel();
    591         instructions = new JTextArea(get("CDM.PlugInManager.Instructions"));
     572
     573        instructions = new JTextArea();
    592574        instructions.setBackground(Gatherer.config.getColor("coloring.collection_tree_background", false));
    593575        instructions.setEditable(false);
     
    595577        instructions.setRows(6);
    596578        instructions.setWrapStyleWord(true);
    597 
    598         move_top_button = new DoubleImageButton(get("CDM.Move.Move_Top"), Utility.getImage("arrow-top.gif"), Utility.getImage("arrow-top-disabled.gif"));
     579        Gatherer.dictionary.setText(instructions, "CDM.PlugInManager.Instructions", null);
     580
     581        move_top_button = new DoubleImageButton("", Utility.getImage("arrow-top.gif"), Utility.getImage("arrow-top-disabled.gif"));
    599582        move_top_button.setEnabled(false);
    600583        move_top_button.setMnemonic(KeyEvent.VK_T);
    601         move_top_button.setDisplayedMnemonicIndex(8);  // !! English-centric hack
     584        // move_top_button.setDisplayedMnemonicIndex(8);  // !! English-centric hack
    602585        move_top_button.setPreferredSize(Utility.DOUBLE_IMAGE_BUTTON_SIZE);
    603 
    604         move_up_button = new DoubleImageButton(get("CDM.Move.Move_Up"), Utility.getImage("arrow-up.gif"), Utility.getImage("arrow-up-disabled.gif"));
     586        Gatherer.dictionary.setBoth(move_top_button, "CDM.Move.Move_Top", "CDM.Move.Move_Top_Tooltip");
     587
     588        move_up_button = new DoubleImageButton("", Utility.getImage("arrow-up.gif"), Utility.getImage("arrow-up-disabled.gif"));
    605589        move_up_button.setEnabled(false);
    606590        move_up_button.setMnemonic(KeyEvent.VK_U);
    607591        move_up_button.setPreferredSize(Utility.DOUBLE_IMAGE_BUTTON_SIZE);
    608 
    609         move_down_button = new DoubleImageButton(get("CDM.Move.Move_Down"), Utility.getImage("arrow-down.gif"), Utility.getImage("arrow-down-disabled.gif"));
     592        Gatherer.dictionary.setBoth(move_up_button, "CDM.Move.Move_Up", "CDM.Move.Move_Up_Tooltip");
     593
     594        move_down_button = new DoubleImageButton("", Utility.getImage("arrow-down.gif"), Utility.getImage("arrow-down-disabled.gif"));
    610595        move_down_button.setEnabled(false);
    611596        move_down_button.setMnemonic(KeyEvent.VK_D);
    612597        move_down_button.setPreferredSize(Utility.DOUBLE_IMAGE_BUTTON_SIZE);
    613 
    614         move_bottom_button = new DoubleImageButton(get("CDM.Move.Move_Bottom"), Utility.getImage("arrow-bottom.gif"), Utility.getImage("arrow-bottom-disabled.gif"));
     598        Gatherer.dictionary.setBoth(move_down_button, "CDM.Move.Move_Down", "CDM.Move.Move_Down_Tooltip");
     599
     600        move_bottom_button = new DoubleImageButton("", Utility.getImage("arrow-bottom.gif"), Utility.getImage("arrow-bottom-disabled.gif"));
    615601        move_bottom_button.setEnabled(false);
    616602        move_bottom_button.setMnemonic(KeyEvent.VK_B);
    617603        move_bottom_button.setPreferredSize(Utility.DOUBLE_IMAGE_BUTTON_SIZE);
     604        Gatherer.dictionary.setBoth(move_bottom_button, "CDM.Move.Move_Bottom", "CDM.Move.Move_Bottom_Tooltip");
    618605
    619606        movement_pane = new JPanel();
     
    626613        plugin.setTextNonSelectionColor(Gatherer.config.getColor("coloring.workspace_tree_foreground", false));
    627614        plugin.setTextSelectionColor(Gatherer.config.getColor("coloring.collection_selection_foreground", false));
    628 
    629         plugin_label = new JLabel(get("CDM.PlugInManager.PlugIn"));
     615        Gatherer.dictionary.setTooltip(plugin, "CDM.PlugInManager.PlugIn_Tooltip");
     616
     617        plugin_label = new JLabel();
     618        Gatherer.dictionary.setText(plugin_label, "CDM.PlugInManager.PlugIn", null);
     619
    630620        plugin_list = new JList(model);
    631621        plugin_list.setCellRenderer(new ListRenderer());
    632622        plugin_list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    633         plugin_list_label = new JLabel(get("CDM.PlugInManager.Assigned"));
     623        plugin_list_label = new JLabel();
    634624        plugin_list_label.setHorizontalAlignment(JLabel.CENTER);
    635625        plugin_list_label.setOpaque(true);
     626        Gatherer.dictionary.setText(plugin_list_label, "CDM.PlugInManager.Assigned", null);
     627
    636628        plugin_list_pane = new JPanel();
    637629        plugin_pane = new JPanel();
    638         remove = new JButton(get("CDM.PlugInManager.Remove"));
     630
     631        remove = new JButton();
    639632        remove.setEnabled(false);
    640633        remove.setMnemonic(KeyEvent.VK_R);
    641         title = new JLabel(get("CDM.PlugInManager.Title"));
     634        Gatherer.dictionary.setBoth(remove, "CDM.PlugInManager.Remove", "CDM.PlugInManager.Remove_Tooltip");
     635
     636        title = new JLabel();
    642637        title.setHorizontalAlignment(JLabel.CENTER);
    643638        title.setOpaque(true);
     639        Gatherer.dictionary.setText(title, "CDM.PlugInManager.Title", null);
     640
    644641        // Listeners
    645642        add.addActionListener(new AddListener());
     
    653650        plugin_list.addMouseListener(new ClickListener());
    654651        plugin_list.addListSelectionListener(new ListListener());
     652
    655653        // Layout
    656654        title.setBorder(BorderFactory.createEmptyBorder(0,0,2,0));
     
    683681        plugin_pane.add(plugin);
    684682
     683        button_pane.setLayout(new GridLayout(1,3));
     684        button_pane.add(add);
     685        button_pane.add(configure);
     686        button_pane.add(remove);
     687
    685688        // Scope these mad bordering skillz.
     689        // !! TO DO: Dictionary registration !!
    686690        JPanel temp = new JPanel(new BorderLayout());
    687691        temp.setBorder
     
    689693         (BorderFactory.createEmptyBorder(5,0,5,0),
    690694          BorderFactory.createCompoundBorder
    691           (BorderFactory.createTitledBorder(get("CDM.PlugInManager.Controls")),
     695          (BorderFactory.createTitledBorder(Gatherer.dictionary.get("CDM.PlugInManager.Controls")),
    692696           BorderFactory.createEmptyBorder(2,2,2,2))));
    693697
     
    698702        central_pane.add(plugin_list_pane, BorderLayout.CENTER);
    699703        central_pane.add(temp, BorderLayout.SOUTH);
    700 
    701         button_pane.setLayout(new GridLayout(1,3));
    702         button_pane.add(add);
    703         button_pane.add(configure);
    704         button_pane.add(remove);
    705704
    706705        setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
     
    708707        add(header_pane, BorderLayout.NORTH);
    709708        add(central_pane, BorderLayout.CENTER);
    710                 //add(button_pane, BorderLayout.SOUTH);
    711     }
     709    }
     710
    712711    /** Method which acts like a destructor, tidying up references to persistant objects.
    713712     */
     
    725724
    726725    public void loseFocus() {
    727 
    728726    }
    729727
     
    770768            }
    771769            else {
    772             JOptionPane.showMessageDialog(Gatherer.g_man, get("CDM.PlugInManager.PlugIn_Exists"), get("General.Error"), JOptionPane.ERROR_MESSAGE);
     770            JOptionPane.showMessageDialog(Gatherer.g_man, Gatherer.dictionary.get("CDM.PlugInManager.PlugIn_Exists"), Gatherer.dictionary.get("General.Error"), JOptionPane.ERROR_MESSAGE);
    773771            }
    774772            base_plugin = null;
     
    930928     */
    931929    static private JPanel getSeparator() {
    932     // we put the separator inside a panel to control
    933     // its appearance
     930    // We put the separator inside a panel to control its appearance
    934931    JPanel _sepPanel = new JPanel();
    935932    _sepPanel.setOpaque(false);
Note: See TracChangeset for help on using the changeset viewer.