Changeset 1288 in josm for trunk


Ignore:
Timestamp:
2009-01-17T23:32:45+01:00 (15 years ago)
Author:
stoecker
Message:

close #2006

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java

    r1237 r1288  
    5555            if (e != null && !(e.getSource() instanceof AbstractButton))
    5656                button.setSelected(!button.isSelected());
    57             setVisible(button.isSelected());
    58             Main.pref.put(prefname+".visible", button.isSelected());
     57            Boolean selected = button.isSelected();
     58            setVisible(selected);
     59            Main.pref.put(prefname+".visible", selected);
     60            if(!selected && winadapter != null)
     61                winadapter.windowClosing(null);
    5962        }
    6063    }
     
    6770
    6871    public JPanel parent;
     72    WindowAdapter winadapter;
    6973    private final JPanel titleBar = new JPanel(new GridBagLayout());
    7074    public JLabel label = new JLabel();
     
    120124                    minimize.setIcon(ImageProvider.get("misc", "minimized"));
    121125                }
    122                 // doLayout() - workaround
    123                 parent.setVisible(false);
    124                 parent.setVisible(true);
     126                if(parent != null)
     127                {
     128                    // doLayout() - workaround
     129                    parent.setVisible(false);
     130                    parent.setVisible(true);
     131                }
    125132            }
    126133        };
     
    134141            public void mouseExited(MouseEvent e) {}
    135142            public void mousePressed(MouseEvent e) {}
    136         public void mouseReleased(MouseEvent e) {}
     143            public void mouseReleased(MouseEvent e) {}
    137144        };
    138145        titleBar.addMouseListener(titleMouseListener);
     
    157164                parent.remove(ToggleDialog.this);
    158165                f.getContentPane().add(ToggleDialog.this);
    159                 f.addWindowListener(new WindowAdapter(){
     166                f.addWindowListener((winadapter = new WindowAdapter(){
    160167                    @Override public void windowClosing(WindowEvent e) {
    161                         titleBar.setVisible(true);
    162168                        f.getContentPane().removeAll();
    163                         parent.add(ToggleDialog.this);
    164169                        f.dispose();
     170                        winadapter = null;
    165171
    166172                        // doLayout() - workaround
    167173                        setVisible(false);
    168                         setVisible(true);
    169 
     174                        parent.add(ToggleDialog.this);
     175                        if(Main.pref.getBoolean(action.prefname+".visible"))
     176                            setVisible(true);
     177                        titleBar.setVisible(true);
    170178                        Main.pref.put(action.prefname+".docked", true);
    171179                    }
    172                 });
     180                }));
    173181                f.addComponentListener(new ComponentAdapter(){
    174182                    @Override public void componentMoved(ComponentEvent e) {
Note: See TracChangeset for help on using the changeset viewer.