Changeset 1102 for trunk/src/org/apollo/gui/ExpandedTrackPopup.java
- Timestamp:
- 05/10/18 16:04:51 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/apollo/gui/ExpandedTrackPopup.java
r315 r1102 2 2 3 3 import java.awt.BorderLayout; 4 import java.awt.Color;5 4 import java.awt.Dimension; 6 5 import java.awt.Event; 7 6 import java.awt.Font; 8 import java.awt.Graphics ;7 import java.awt.Graphics2D; 9 8 import java.awt.GridBagConstraints; 10 9 import java.awt.GridBagLayout; 11 10 import java.awt.Insets; 12 11 import java.awt.Point; 13 import java.awt.Rectangle;14 12 import java.awt.event.ActionEvent; 15 13 import java.awt.event.ActionListener; 16 import java.awt.event.KeyEvent;17 import java.awt.event.KeyListener;18 import java.awt.event.MouseEvent;19 import java.awt.event.MouseListener;20 import java.awt.event.MouseMotionListener;21 14 22 15 import javax.sound.sampled.LineUnavailableException; 23 import javax.swing.Icon;24 16 import javax.swing.JButton; 25 17 import javax.swing.JPanel; … … 45 37 import org.apollo.util.AudioMath; 46 38 import org.apollo.widgets.TrackWidgetCommons; 39 import org.expeditee.core.Colour; 40 import org.expeditee.core.Image; 41 import org.expeditee.core.bounds.AxisAlignedBoxBounds; 42 import org.expeditee.gio.EcosystemManager; 43 import org.expeditee.gio.input.InputEvent; 44 import org.expeditee.gio.input.InputEventListener; 45 import org.expeditee.gio.swing.SwingConversions; 46 import org.expeditee.gio.swing.SwingMiscManager; 47 47 import org.expeditee.gui.Browser; 48 import org.expeditee.gui. FrameGraphics;48 import org.expeditee.gui.DisplayController; 49 49 import org.expeditee.gui.Popup; 50 import org.expeditee.gui.PopupManager; 51 52 public class ExpandedTrackPopup extends Popup implements ActionListener, Observer { 53 54 private static final long serialVersionUID = 1L; 55 50 import org.expeditee.gui.PopupManager.ExpandShrinkAnimator; 51 52 public class ExpandedTrackPopup extends Popup implements ActionListener, Observer 53 { 56 54 /** The observed subject. Can never be null */ 57 55 private SampledTrackModel trackModel; // immutable … … 61 59 private TrackMixSubject trackMix; // immutable 62 60 61 private JPanel panel; 63 62 private JButton playPauseButton; 64 63 private JButton stopButton; … … 106 105 String trackSourceFrameName, 107 106 int frameStart, 108 int frameLength) { 109 super(new BorderLayout()); 107 int frameLength) 108 { 109 super(new ExpandShrinkAnimator()); 110 110 super.setConsumeBackClick(true); 111 112 panel = new JPanel(new BorderLayout()); 111 113 112 114 if (trackModel == null) throw new NullPointerException("trackModel"); … … 121 123 playPauseButton = new JButton(); 122 124 playPauseButton.addActionListener(this); 123 playPauseButton.setIcon(IconRepository.getIcon("play.png"));125 SwingMiscManager.setJButtonIcon(playPauseButton, IconRepository.getIcon("play.png")); 124 126 playPauseButton.setPreferredSize(new Dimension(BUTTON_SIZE, BUTTON_SIZE)); 125 127 playPauseButton.setToolTipText("Play selection / Pause"); … … 128 130 stopButton.setEnabled(false); 129 131 stopButton.addActionListener(this); 130 stopButton.setIcon(IconRepository.getIcon("stop.png"));132 SwingMiscManager.setJButtonIcon(stopButton, IconRepository.getIcon("stop.png")); 131 133 stopButton.setPreferredSize(new Dimension(BUTTON_SIZE, BUTTON_SIZE)); 132 134 stopButton.setToolTipText("Stop playback"); … … 134 136 rewindButton = new JButton(); 135 137 rewindButton.addActionListener(this); 136 rewindButton.setIcon(IconRepository.getIcon("rewind.png"));138 SwingMiscManager.setJButtonIcon(rewindButton, IconRepository.getIcon("rewind.png")); 137 139 rewindButton.setPreferredSize(new Dimension(BUTTON_SIZE, BUTTON_SIZE)); 138 140 rewindButton.setToolTipText("Rewind to start"); … … 140 142 // Icon changes 141 143 muteButton = new JToggleButton(); 142 muteButton.setSelectedIcon(IconRepository.getIcon("volmute.png"));144 SwingMiscManager.setJButtonIcon(muteButton, IconRepository.getIcon("volmute.png")); 143 145 muteButton.setPreferredSize(new Dimension(BUTTON_SIZE, BUTTON_SIZE)); 144 146 muteButton.setToolTipText("Toggle mute"); … … 153 155 154 156 soloButton = new JToggleButton(); 155 soloButton.setIcon(IconRepository.getIcon("solo.png"));156 soloButton.setSelectedIcon(IconRepository.getIcon("soloon.png"));157 SwingMiscManager.setJButtonIcon(soloButton, IconRepository.getIcon("solo.png")); 158 SwingMiscManager.setJButtonSelectedIcon(soloButton, IconRepository.getIcon("soloon.png")); 157 159 soloButton.setPreferredSize(new Dimension(BUTTON_SIZE, BUTTON_SIZE)); 158 160 soloButton.setToolTipText("Toggle solo"); … … 170 172 closeButton = new JButton(); 171 173 closeButton.addActionListener(this); 172 closeButton.setIcon(IconRepository.getIcon("close.png"));174 SwingMiscManager.setJButtonIcon(closeButton, IconRepository.getIcon("close.png")); 173 175 closeButton.setPreferredSize(new Dimension(BUTTON_SIZE, BUTTON_SIZE)); 174 176 closeButton.setToolTipText("Close"); … … 216 218 nameLabelParent = new JPanel(); 217 219 218 nameLabelParent.addMouseListener(new MouseListener() { 219 220 public void mouseClicked(MouseEvent e) { 221 if (nameLabel != null) { 222 if (nameLabel.onMouseClicked(e)) { 223 e.consume(); 224 return; 225 } 226 } 227 } 228 229 public void mouseEntered(MouseEvent e) { 230 } 231 232 public void mouseExited(MouseEvent e) { 233 } 234 235 public void mousePressed(MouseEvent e) { 236 if (nameLabel != null) { 237 if (nameLabel.onMousePressed(e)) { 238 e.consume(); 239 } 240 } 241 } 242 243 public void mouseReleased(MouseEvent e) { 244 if (nameLabel != null) { 245 if (nameLabel.onMouseReleased(e)) { 246 e.consume(); 247 } 248 } 249 } 250 251 }); 252 253 nameLabelParent.addMouseMotionListener(new MouseMotionListener() { 254 255 public void mouseDragged(MouseEvent e) { 256 if (nameLabel != null) { 257 if (nameLabel.onMouseDragged(e)) { 258 e.consume(); 259 } 260 } 261 } 262 263 public void mouseMoved(MouseEvent e) { 264 if (nameLabel != null) { 265 nameLabel.onMouseMoved(e, nameLabelParent); 266 } 267 } 268 269 }); 270 271 nameLabelParent.addKeyListener(new KeyListener() { 272 273 public void keyPressed(KeyEvent e) { 274 if (nameLabel != null) { 275 if (nameLabel.onKeyPressed(e, nameLabelParent)) { 276 e.consume(); 277 } 278 } 279 } 280 281 public void keyReleased(KeyEvent e) { 282 if (nameLabel != null) { 283 if (nameLabel.onKeyReleased(e, nameLabelParent)) { 284 e.consume(); 285 } 286 } 287 288 } 289 290 public void keyTyped(KeyEvent e) { 291 } 292 293 }); 294 295 nameLabel = new EmulatedTextItem(nameLabelParent, new Point(10, 25)); 296 nameLabel.setFontStyle(Font.BOLD); 220 nameLabel = new EmulatedTextItem(trackModel.getName(), SwingConversions.fromSwingPoint(new Point(10, 25))); 221 nameLabel.setFontStyle(SwingConversions.fromSwingFontStyle(Font.BOLD)); 297 222 nameLabel.setFontSize(16); 298 nameLabel.setBackgroundColor(Colo r.WHITE);299 nameLabel. setText(trackModel.getName());223 nameLabel.setBackgroundColor(Colour.WHITE); 224 nameLabel.gainFocus(); 300 225 301 226 nameLabel.addTextChangeListener(new TextChangeListener() { // a little bit loopy! … … 373 298 toolBarPanel.add(closeButton, c); 374 299 375 this.add(toolBarPanel, BorderLayout.NORTH);376 this.add(splitPane, BorderLayout.CENTER);300 panel.add(toolBarPanel, BorderLayout.NORTH); 301 panel.add(splitPane, BorderLayout.CENTER); 377 302 378 303 // Observe track model … … 430 355 ExpandedTrackManager.getInstance().receiveExpandedTrackPopup(xtp); 431 356 } 432 357 433 358 @Override 434 public void onShowing() { 435 436 } 437 438 @Override 439 public void onShow() { 440 359 public void onShow() 360 { 441 361 if (splitPane.getHeight() < 140) { 442 362 splitPane.setDividerLocation(splitPane.getHeight() - 30); … … 456 376 // Invalidate full frame for shading 457 377 if (Browser._theBrowser != null) { 458 FrameGraphics.refresh(false);378 DisplayController.requestRefresh(false); 459 379 } 460 380 } 461 381 462 382 @Override 463 public void onHide() { 383 public void onHide() 384 { 464 385 ExpandedTrackManager.getInstance().expandedTrackPopupHidden(this); 465 386 releaseMemory(); // get rid of buffer etc.. … … 470 391 // Invalidate full frame for shading 471 392 if (Browser._theBrowser != null) { 472 FrameGraphics.refresh(false);393 DisplayController.requestRefresh(false); 473 394 } 474 395 } 475 396 476 477 478 479 397 @Override 480 public void paint(Graphics g) { 481 super.paint(g); 482 483 g.translate(-getX(), -getY()); 484 nameLabel.paint(g); 485 g.translate(getX(), getY()); 486 487 } 488 489 public void actionPerformed(ActionEvent e) { 398 public void paintInternal() 399 { 400 Graphics2D g = SwingMiscManager.getIfUsingSwingGraphicsManager().getCurrentSurface(); 401 402 panel.paint(g); 403 404 g.translate(-getFullBounds().getMinX(), -getFullBounds().getMinY()); 405 nameLabel.paint(); 406 g.translate(getFullBounds().getMinX(), getFullBounds().getMinY()); 407 } 408 409 public void actionPerformed(ActionEvent e) 410 { 490 411 if (trackModel == null) return; 491 412 … … 587 508 // If there are more expanded tracks showing then the ExpandedTrackManager 588 509 // will automatically re-layout the remaing views. 589 PopupManager.getInstance().hidePopup(this, 590 PopupManager.getInstance().new ExpandShrinkAnimator( 591 new Rectangle(0, getY(), 1, getHeight()), 592 Color.LIGHT_GRAY)); 510 hide(); 593 511 594 512 } … … 660 578 stopButton.setEnabled(true); 661 579 rewindButton.setEnabled(false); 662 playPauseButton.setIcon(IconRepository.getIcon("pause.png"));580 SwingMiscManager.setJButtonIcon(playPauseButton, IconRepository.getIcon("pause.png")); 663 581 664 582 setBorderThickness(TrackWidgetCommons.PLAYING_TRACK_EDGE_THICKNESS); … … 670 588 rewindButton.setEnabled(true); 671 589 stopButton.setEnabled(false); 672 playPauseButton.setIcon(IconRepository.getIcon("play.png"));590 SwingMiscManager.setJButtonIcon(playPauseButton, IconRepository.getIcon("play.png")); 673 591 674 592 // Note: … … 810 728 811 729 // Get border color currently used 812 Colo r oldC = getBorderColor();813 814 Colo r newC = TrackWidgetCommons.getBorderColor(730 Colour oldC = getBorderColor(); 731 732 Colour newC = TrackWidgetCommons.getBorderColor( 815 733 SoundDesk.getInstance().isSolo(trackMix.getChannelID()), 816 734 trackMix.isMuted()); … … 828 746 private void updateButtonGUI() { 829 747 830 I connewIcon = null;748 Image newIcon = null; 831 749 if (volumeSlider.getValue() <= 25) 832 750 newIcon = IconRepository.getIcon("vol25.png"); … … 838 756 newIcon = IconRepository.getIcon("vol100.png"); 839 757 840 muteButton.setIcon(newIcon);758 SwingMiscManager.setJButtonIcon(muteButton, newIcon); 841 759 } 842 760 … … 846 764 * Never null. 847 765 */ 848 public String getTrackSourceFrameName() { 766 public String getTrackSourceFrameName() 767 { 849 768 return trackSourceFrameName; 850 769 } 851 770 771 public void setBounds(int x, int y, int width, int height) 772 { 773 panel.setBounds(x, y, width, height); 774 } 775 776 @Override 777 public AxisAlignedBoxBounds getFullBounds() 778 { 779 return SwingConversions.fromSwingRectangle(panel.getBounds()); 780 } 781 852 782 853 783 }
Note:
See TracChangeset
for help on using the changeset viewer.