Changeset 2602 in josm for trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java
- Timestamp:
- 2009-12-10T16:34:13+01:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java
r2601 r2602 9 9 10 10 import java.awt.BorderLayout; 11 import java.awt.Component; 11 12 import java.awt.Dimension; 12 import java.awt.FlowLayout; 13 import java.awt.GridBagConstraints; 14 import java.awt.GridBagLayout; 13 15 import java.awt.event.ActionEvent; 14 16 import java.awt.event.ActionListener; 15 17 import java.awt.event.KeyEvent; 16 18 import java.awt.event.WindowEvent; 19 20 import javax.swing.Box; 17 21 import javax.swing.AbstractAction; 18 22 import javax.swing.ImageIcon; … … 23 27 24 28 import org.openstreetmap.josm.Main; 25 import org.openstreetmap.josm.gui.SideButton;26 29 import org.openstreetmap.josm.gui.dialogs.ToggleDialog; 27 30 import org.openstreetmap.josm.gui.dialogs.DialogsPanel.Action; … … 37 40 private static final String COMMAND_REMOVE = "remove"; 38 41 private static final String COMMAND_PREVIOUS = "previous"; 42 private static final String COMMAND_COLLAPSE = "collapse"; 39 43 40 44 private ImageDisplay imgDisplay = new ImageDisplay(); … … 43 47 // Only one instance of that class 44 48 static private ImageViewerDialog INSTANCE = null; 49 50 private boolean collapseButtonClicked = false; 45 51 46 52 public static ImageViewerDialog getInstance() { … … 53 59 private JButton btnNext; 54 60 private JButton btnPrevious; 61 private JButton btnCollapse; 55 62 56 63 private ImageViewerDialog() { … … 73 80 content.add(imgDisplay, BorderLayout.CENTER); 74 81 75 JPanel buttons = new JPanel();76 buttons.setLayout(new FlowLayout());77 78 82 Dimension buttonDim = new Dimension(26,26); 79 83 80 84 ImageAction prevAction = new ImageAction(COMMAND_PREVIOUS, ImageProvider.get("dialogs", "previous"), tr("Previous")); 81 85 btnPrevious = new JButton(prevAction); 82 86 btnPrevious.setPreferredSize(buttonDim); 83 buttons.add(btnPrevious);84 87 Shortcut scPrev = Shortcut.registerShortcut( 85 88 "geoimage:previous", tr("Geoimage: {0}", tr("Show previous Image")), KeyEvent.VK_PAGE_UP, Shortcut.GROUP_DIRECT); … … 92 95 JButton btnDelete = new JButton(new ImageAction(COMMAND_REMOVE, ImageProvider.get("dialogs", "delete"), tr("Remove photo from layer"))); 93 96 btnDelete.setPreferredSize(buttonDim); 94 buttons.add(btnDelete); 95 97 96 98 ImageAction nextAction = new ImageAction(COMMAND_NEXT, ImageProvider.get("dialogs", "next"), tr("Next")); 97 99 btnNext = new JButton(nextAction); 98 100 btnNext.setPreferredSize(buttonDim); 99 buttons.add(btnNext);100 101 Shortcut scNext = Shortcut.registerShortcut( 101 102 "geoimage:next", tr("Geoimage: {0}", tr("Show next Image")), KeyEvent.VK_PAGE_DOWN, Shortcut.GROUP_DIRECT); … … 108 109 JToggleButton tbCentre = new JToggleButton(new ImageAction(COMMAND_CENTERVIEW, ImageProvider.get("dialogs", "centreview"), tr("Center view"))); 109 110 tbCentre.setPreferredSize(buttonDim); 110 buttons.add(tbCentre); 111 111 112 112 JButton btnZoomBestFit = new JButton(new ImageAction(COMMAND_ZOOM, ImageProvider.get("dialogs", "zoom-best-fit"), tr("Zoom best fit and 1:1"))); 113 113 btnZoomBestFit.setPreferredSize(buttonDim); 114 115 btnCollapse = new JButton(new ImageAction(COMMAND_COLLAPSE, ImageProvider.get("dialogs", "collapse"), tr("Move dialog to the side pane"))); 116 btnCollapse.setPreferredSize(new Dimension(20,20)); 117 btnCollapse.setAlignmentY(Component.TOP_ALIGNMENT); 118 119 JPanel buttons = new JPanel(); 120 buttons.add(btnPrevious); 121 buttons.add(btnNext); 122 buttons.add(Box.createRigidArea(new Dimension(14, 0))); 123 buttons.add(tbCentre); 114 124 buttons.add(btnZoomBestFit); 115 116 content.add(buttons, BorderLayout.SOUTH); 125 buttons.add(Box.createRigidArea(new Dimension(14, 0))); 126 buttons.add(btnDelete); 127 128 JPanel bottomPane = new JPanel(); 129 bottomPane.setLayout(new GridBagLayout()); 130 GridBagConstraints gc = new GridBagConstraints(); 131 gc.gridx = 0; 132 gc.gridy = 0; 133 gc.anchor = GridBagConstraints.CENTER; 134 gc.weightx = 1; 135 bottomPane.add(buttons, gc); 136 137 gc.gridx = 1; 138 gc.gridy = 0; 139 gc.anchor = GridBagConstraints.PAGE_END; 140 gc.weightx = 0; 141 bottomPane.add(btnCollapse, gc); 142 143 content.add(bottomPane, BorderLayout.SOUTH); 117 144 118 145 add(content, BorderLayout.CENTER); … … 150 177 currentLayer.removeCurrentPhoto(); 151 178 } 179 } else if (COMMAND_COLLAPSE.equals(action)) { 180 collapseButtonClicked = true; 181 detachedDialog.getToolkit().getSystemEventQueue().postEvent(new WindowEvent(detachedDialog, WindowEvent.WINDOW_CLOSING)); 152 182 } 153 183 } … … 186 216 if (entry != null) { 187 217 imgDisplay.setImage(entry.file); 218 titleBar.setTitle("Geotagged Images" + (entry.file != null ? " - " + entry.file.getName() : "")); 188 219 StringBuffer osd = new StringBuffer(entry.file != null ? entry.file.getName() : ""); 189 220 if (entry.elevation != null) { … … 227 258 @Override 228 259 protected boolean dockWhenClosingDetachedDlg() { 260 if (collapseButtonClicked) { 261 collapseButtonClicked = false; 262 return true; 263 } 229 264 return false; 265 } 266 267 @Override 268 protected void stateChanged() { 269 super.stateChanged(); 270 if (btnCollapse != null) { 271 btnCollapse.setVisible(!isDocked); 272 } 230 273 } 231 274
Note:
See TracChangeset
for help on using the changeset viewer.