Ignore:
Timestamp:
05/10/18 16:04:51 (6 years ago)
Author:
davidb
Message:

Reworking of the code-base to separate logic from graphics. This version of Expeditee now supports a JFX graphics as an alternative to SWING

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/apollo/widgets/FramePlayer.java

    r372 r1102  
    11package org.apollo.widgets;
    22
    3 import java.awt.Color;
    43import java.awt.Dimension;
    54import java.awt.GridBagConstraints;
     
    2120import javax.swing.ComboBoxModel;
    2221import javax.swing.DefaultComboBoxModel;
    23 import javax.swing.Icon;
    2422import javax.swing.JButton;
    2523import javax.swing.JComboBox;
     
    4543import org.apollo.util.ApolloSystemLog;
    4644import org.apollo.util.AudioMath;
    47 import org.expeditee.gui.DisplayIO;
    48 import org.expeditee.gui.DisplayIOObserver;
    49 import org.expeditee.gui.FrameGraphics;
     45import org.expeditee.core.Colour;
     46import org.expeditee.core.Image;
     47import org.expeditee.gio.gesture.StandardGestureActions;
     48import org.expeditee.gio.swing.SwingMiscManager;
     49import org.expeditee.gui.DisplayController;
     50import org.expeditee.gui.DisplayObserver;
    5051import org.expeditee.gui.FrameIO;
    51 import org.expeditee.gui.FrameMouseActions;
    5252import org.expeditee.gui.MessageBay;
    5353import org.expeditee.items.ItemParentStateChangedEvent;
    5454import org.expeditee.items.Text;
    55 import org.expeditee.items.widgets.InteractiveWidget;
     55import org.expeditee.items.widgets.SwingWidget;
    5656
    5757/**
     
    6161 *
    6262 */
    63 public class FramePlayer extends InteractiveWidget
    64         implements Observer, MultitrackLoadListener, ActionListener, DisplayIOObserver {
     63public class FramePlayer extends SwingWidget
     64        implements Observer, MultitrackLoadListener, ActionListener, DisplayObserver {
    6565
    6666        private static final int BUTTON_SIZE = 40;
     
    7373        private JButton rewindButton;
    7474        private JButton playLauncherButton;
    75         private JComboBox frameSelection;
     75        private JComboBox<String> frameSelection;
    7676        private JToggleButton muteButton;
    7777        private JSlider volumeSlider;
     
    8686        public static String FRAME_PLAYERMASTER_CHANNEL_ID = "#$frameplayer#master$";
    8787       
    88         private static final Color LOADING_BORDER_COLOR = new Color(22, 205, 5);
     88        private static final Colour LOADING_BORDER_COLOR = Colour.FromRGB255(22, 205, 5);
    8989        //private static final Color FAILED_MESSAGE_COLOR = Color.RED;
    9090        //private static final Font MESSAGE_FONT = TrackWidgetCommons.FREESPACE_TRACKNAME_FONT;
     
    180180                playPauseButton = new JButton();
    181181                playPauseButton.addActionListener(this);
    182                 playPauseButton.setIcon(IconRepository.getIcon("play.png"));
     182                SwingMiscManager.setJButtonIcon(playPauseButton, IconRepository.getIcon("play.png"));
    183183                playPauseButton.setPreferredSize(new Dimension(BUTTON_SIZE, BUTTON_SIZE));
    184184                playPauseButton.setToolTipText("Play selection / Pause");
     
    187187                stopButton.setEnabled(false);
    188188                stopButton.addActionListener(this);
    189                 stopButton.setIcon(IconRepository.getIcon("stop.png"));
     189                SwingMiscManager.setJButtonIcon(stopButton, IconRepository.getIcon("stop.png"));
    190190                stopButton.setPreferredSize(new Dimension(BUTTON_SIZE, BUTTON_SIZE));
    191191                stopButton.setToolTipText("Stop playback");
     
    193193                rewindButton = new JButton();
    194194                rewindButton.addActionListener(this);
    195                 rewindButton.setIcon(IconRepository.getIcon("rewind.png"));
     195                SwingMiscManager.setJButtonIcon(rewindButton, IconRepository.getIcon("rewind.png"));
    196196                rewindButton.setPreferredSize(new Dimension(BUTTON_SIZE, BUTTON_SIZE));
    197197                rewindButton.setToolTipText("Rewind to start");
     
    199199                // Icon changes
    200200                muteButton = new JToggleButton();
    201                 muteButton.setSelectedIcon(IconRepository.getIcon("volmute.png"));
     201                SwingMiscManager.setJButtonIcon(muteButton, IconRepository.getIcon("volmute.png"));
    202202                muteButton.setPreferredSize(new Dimension(BUTTON_SIZE, BUTTON_SIZE));
    203203                muteButton.setToolTipText("Toggle mute");
     
    212212                playLauncherButton = new JButton();
    213213                playLauncherButton.addActionListener(this);
    214                 playLauncherButton.setIcon(IconRepository.getIcon("frameplay.png"));
     214                SwingMiscManager.setJButtonIcon(playLauncherButton, IconRepository.getIcon("frameplay.png"));
    215215                playLauncherButton.setPreferredSize(new Dimension(BUTTON_SIZE, BUTTON_SIZE));
    216216                playLauncherButton.setToolTipText("Play from a specific position");
     
    231231                volumeSlider.setPreferredSize(new Dimension((3 * BUTTON_SIZE) - (2 * VOLUME_SPACING), BUTTON_SIZE));
    232232
    233                 frameSelection = new JComboBox();
     233                frameSelection = new JComboBox<String>();
    234234                frameSelection.setEditable(true);
    235235                frameSelection.setPreferredSize(new Dimension(4 * BUTTON_SIZE, BUTTON_SIZE));
     
    304304                        stopButton.setEnabled(false);
    305305                        playPauseButton.setEnabled(true);
    306                         playPauseButton.setIcon(IconRepository.getIcon("play.png"));
     306                        SwingMiscManager.setJButtonIcon(playPauseButton, IconRepository.getIcon("play.png"));
    307307                        playLauncherButton.setEnabled(true);
    308308
     
    323323                        playLauncherButton.setEnabled(true);
    324324                        playPauseButton.setEnabled(true);
    325                         playPauseButton.setIcon(IconRepository.getIcon("pause.png"));
     325                        SwingMiscManager.setJButtonIcon(playPauseButton, IconRepository.getIcon("pause.png"));
    326326
    327327                        setWidgetEdgeThickness(TrackWidgetCommons.PLAYING_TRACK_EDGE_THICKNESS);
     
    336336               
    337337                invalidateSelf();
    338                 FrameGraphics.refresh(true);
     338                DisplayController.requestRefresh(true);
    339339        }
    340340       
     
    361361                        MultiTrackPlaybackController.getInstance().addObserver(this); // the core!
    362362                        masterMix.addObserver(this);
    363                         DisplayIO.addDisplayIOObserver(this);
     363                        DisplayController.addDisplayObserver(this);
    364364               
    365365                        // Evaluate the state of this add set the state accordingly
     
    405405                       
    406406                        // Remove observers
    407                         DisplayIO.removeDisplayIOObserver(this);
     407                        DisplayController.removeDisplayObserver(this);
    408408                        SoundDesk.getInstance().removeObserver(this);
    409409                        MultiTrackPlaybackController.getInstance().removeObserver(this);
     
    544544                if ((frameSelection.getSelectedItem() != null && frameSelection.getSelectedItem().equals(CURRENT_FRAME_SPECIFIER))
    545545                                || frameSelection.getSelectedItem() == null)
    546                         return DisplayIO.getCurrentFrame().getName();
     546                        return DisplayController.getCurrentFrame().getName();
    547547               
    548548                String frameSpecifier = (String)frameSelection.getSelectedItem();
    549549               
    550550                if (frameSpecifier.isEmpty()) {
    551                         return DisplayIO.getCurrentFrame().getName();
     551                        return DisplayController.getCurrentFrame().getName();
    552552                }
    553553               
     
    671671                       
    672672                        String target = getSelectedFrameName();
    673                         if (target == DisplayIO.getCurrentFrame().getName()) target = null;
     673                        if (target == DisplayController.getCurrentFrame().getName()) target = null;
    674674                       
    675675                        // Create the launcher
    676676                        FramePlaybackLauncher launcher = new FramePlaybackLauncher(target);
    677                         launcher.setPosition(FrameMouseActions.MouseX, FrameMouseActions.MouseY);
     677                        launcher.setPosition(DisplayController.getMousePosition());
    678678
    679679                        // Pick it up
    680                         FrameMouseActions.pickup(launcher);
     680                        StandardGestureActions.pickup(launcher);
    681681                }
    682682               
     
    687687               
    688688                // Get border color currently used
    689                 Color oldC = getSource().getBorderColor();
    690                 Color newC = null;
     689                Colour oldC = getSource().getBorderColor();
     690                Colour newC = null;
    691691               
    692692                if (this.state == PLAYBACK_LOADING) {
     
    714714        private void updateButtonGUI() {
    715715               
    716                 Icon newIcon = null;
     716                Image newIcon = null;
    717717                if (volumeSlider.getValue() <= 25)
    718718                                newIcon = IconRepository.getIcon("vol25.png");
     
    724724                                newIcon = IconRepository.getIcon("vol100.png");
    725725               
    726                 muteButton.setIcon(newIcon);
     726                SwingMiscManager.setJButtonIcon(muteButton, newIcon);
    727727        }
    728728       
     
    783783               
    784784                // Place last visited frames
    785                 List<String> history = DisplayIO.getUnmodifiableVisitedList();
     785                List<String> history = DisplayController.getUnmodifiableVisitedList();
    786786               
    787787                for (int i = history.size() - 1; i >= 0; i--) {
     
    802802                }
    803803               
    804             ComboBoxModel model = new DefaultComboBoxModel(orderedModelData.toArray());
     804            ComboBoxModel<String> model = new DefaultComboBoxModel<String>((String[]) orderedModelData.toArray());
    805805           
    806806            // Remove helper tags from model data
Note: See TracChangeset for help on using the changeset viewer.