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/gui/SampledTrackGraphViewPort.java

    r356 r1102  
    11package org.apollo.gui;
    22
    3 import java.awt.Color;
    43import java.awt.Event;
    5 import java.awt.Font;
    6 import java.awt.FontMetrics;
    74import java.awt.Graphics;
    85import java.awt.Graphics2D;
    9 import java.awt.Stroke;
    106import java.awt.event.ComponentEvent;
    117import java.awt.event.ComponentListener;
     
    1713import java.awt.event.MouseWheelEvent;
    1814import java.awt.event.MouseWheelListener;
    19 import java.awt.geom.Rectangle2D;
    20 import java.awt.image.BufferedImage;
    2115import java.util.LinkedList;
    2216import java.util.List;
     
    2721import org.apollo.mvc.SubjectChangedEvent;
    2822import org.apollo.util.AudioMath;
    29 import org.expeditee.gui.Browser;
     23import org.expeditee.core.Colour;
     24import org.expeditee.core.Font;
     25import org.expeditee.core.Stroke;
     26import org.expeditee.core.TextLayout;
     27import org.expeditee.core.bounds.AxisAlignedBoxBounds;
     28import org.expeditee.gio.EcosystemManager;
     29import org.expeditee.gio.swing.SwingConversions;
     30import org.expeditee.gio.swing.SwingMiscManager;
    3031
    3132public class SampledTrackGraphViewPort extends SampledTrackGraphView
     
    4344        private static final int ZOOM_ADJUSTMENT_MODE_MODIFYZOOM = 3;
    4445       
    45         public static final Color ZOOM_BACKING_COLOR_NORMAL = new Color(251, 255, 168);
    46         private static final Color ZOOM_BACKING_COLOR_HIGHLIGHT = new Color(255, 255, 224);
    47         private static final Color ZOOM_BACKING_BORDER_COLOR = new Color(215, 219, 144);
     46        public static final Colour ZOOM_BACKING_COLOR_NORMAL = Colour.FromRGB255(251, 255, 168);
     47        private static final Colour ZOOM_BACKING_COLOR_HIGHLIGHT = Colour.FromRGB255(255, 255, 224);
     48        private static final Colour ZOOM_BACKING_BORDER_COLOR = Colour.FromRGB255(215, 219, 144);
    4849        public static final Stroke ZOOM_BACKING_BORDER_STROKE = Strokes.SOLID_1;
    4950       
    50         public static final Font TIME_HELPER_FONT = new Font("Arial", Font.PLAIN, 12);
    51         public static final Color TIME_HELPER_COLOR = new Color(132, 175, 201);
    52         public static final Color TIME_HELPER_BORDERCOLOR = new Color(111, 146, 168);
     51        public static final Font TIME_HELPER_FONT = new Font("Arial", Font.Style.PLAIN, 12);
     52        public static final Colour TIME_HELPER_COLOR = Colour.FromRGB255(132, 175, 201);
     53        public static final Colour TIME_HELPER_BORDERCOLOR = Colour.FromRGB255(111, 146, 168);
    5354       
    5455        // displays the current zoom or the new zoom-selection
     
    6768        private List<ZoomChangeListener> zoomChangeListeners = new LinkedList<ZoomChangeListener>();
    6869
    69         public SampledTrackGraphViewPort() {
     70        public SampledTrackGraphViewPort()
     71        {
    7072                super();
    7173               
    72                 setBackColor(new Color(250, 250, 250), new Color(230, 230, 230));
     74                setBackColor(SwingConversions.toSwingColor(Colour.FromRGB255(250, 250, 250)), SwingConversions.toSwingColor(Colour.FromRGB255(230, 230, 230)));
    7375                setAlwaysFullView(true);
    7476
     
    531533                void paint(Graphics g) {
    532534                       
    533                         color =  (zoomAdjustmentMode == ZOOM_ADJUSTMENT_MODE_NONE) ?
    534                                         ZOOM_BACKING_COLOR_NORMAL : ZOOM_BACKING_COLOR_HIGHLIGHT;
     535                        color = SwingConversions.toSwingColor((zoomAdjustmentMode == ZOOM_ADJUSTMENT_MODE_NONE) ? ZOOM_BACKING_COLOR_NORMAL : ZOOM_BACKING_COLOR_HIGHLIGHT);
    535536                        super.paint(g);
    536537                       
    537                         g.setColor(ZOOM_BACKING_BORDER_COLOR);
    538                         ((Graphics2D)g).setStroke(ZOOM_BACKING_BORDER_STROKE);
     538                        g.setColor(SwingConversions.toSwingColor(ZOOM_BACKING_BORDER_COLOR));
     539                        ((Graphics2D)g).setStroke(SwingConversions.toSwingStroke(ZOOM_BACKING_BORDER_STROKE));
    539540                        g.drawLine(left, 0, left, getHeight());
    540541                        g.drawLine(left + width, 0, left + width, getHeight());
     
    542543                }
    543544               
    544                 void postPaint(Graphics g) {
    545                         // Paint little helper labels when ajusting view port
    546                         if (startTimeHelpLabel != null && endTimeHelpLabel != null &&
    547                                         zoomAdjustmentMode != ZOOM_ADJUSTMENT_MODE_NONE) {
    548                                
    549                                 g.setColor(TIME_HELPER_COLOR);
     545                void postPaint(Graphics g)
     546                {
     547                        // Paint little helper labels when adjusting view port
     548                        if (startTimeHelpLabel != null && endTimeHelpLabel != null && zoomAdjustmentMode != ZOOM_ADJUSTMENT_MODE_NONE) {
     549                               
     550                                g.setColor(SwingConversions.toSwingColor(TIME_HELPER_COLOR));
    550551                                g.fillRect(labelStartX - 2, labelStartY - labelHeight + 2, labelWidth + 3, labelHeight);
    551552                                g.fillRect(labelEndX - 2, labelEndY  - labelHeight + 2, labelWidth + 3, labelHeight);
    552553                               
    553                                 g.setColor(TIME_HELPER_BORDERCOLOR);
    554                                 ((Graphics2D)g).setStroke(ZOOM_BACKING_BORDER_STROKE);
     554                                g.setColor(SwingConversions.toSwingColor(TIME_HELPER_BORDERCOLOR));
     555                                ((Graphics2D)g).setStroke(SwingConversions.toSwingStroke(ZOOM_BACKING_BORDER_STROKE));
    555556                                g.drawRect(labelStartX - 2, labelStartY - labelHeight + 2, labelWidth + 3, labelHeight);
    556557                                g.drawRect(labelEndX - 2, labelEndY  - labelHeight + 2, labelWidth + 3, labelHeight);
    557558
    558                                 g.setFont(TIME_HELPER_FONT);
    559                                 g.setColor(Color.BLACK);
     559                                g.setFont(SwingMiscManager.getIfUsingSwingFontManager().getInternalFont(TIME_HELPER_FONT));
     560                                g.setColor(SwingConversions.toSwingColor(Colour.BLACK));
    560561                                g.drawString(startTimeHelpLabel, labelStartX, labelStartY);
    561562                                g.drawString(endTimeHelpLabel, labelEndX, labelEndY);
     
    603604                               
    604605                                // Create a temp graphics for centered label positioning
    605                                 if (Browser._theBrowser != null && Browser._theBrowser.g != null) {
     606                                /*if (Browser._theBrowser != null && Browser._theBrowser.g != null) {
    606607                                        g = Browser._theBrowser.g.create();
    607608                                } else {
    608609                                        g = new BufferedImage(1,1,BufferedImage.TYPE_BYTE_INDEXED).getGraphics();
    609                                 }
     610                                }*/
    610611               
    611612                                // Position labels
    612                                 FontMetrics fm   = g.getFontMetrics(TIME_HELPER_FONT);
    613                                 Rectangle2D rect = fm.getStringBounds(startTimeHelpLabel, g);
     613                                //FontMetrics fm   = g.getFontMetrics(TIME_HELPER_FONT);
     614                                //Rectangle2D rect = fm.getStringBounds(startTimeHelpLabel, g);
     615                                TextLayout layout = EcosystemManager.getTextLayoutManager().layoutStringSimple(startTimeHelpLabel, TIME_HELPER_FONT);
     616                                AxisAlignedBoxBounds rect = layout.getPixelBounds(0, 0);
    614617                               
    615618                                labelWidth = (int)rect.getWidth();
Note: See TracChangeset for help on using the changeset viewer.