Package editor

Class LabFrame

  • All Implemented Interfaces:
    IGosuEditor, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

    public class LabFrame
    extends javax.swing.JFrame
    implements IGosuEditor
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JFrame

        javax.swing.JFrame.AccessibleJFrame
      • Nested classes/interfaces inherited from class java.awt.Frame

        java.awt.Frame.AccessibleAWTFrame
      • Nested classes/interfaces inherited from class java.awt.Window

        java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.List<java.lang.String> _experiments  
      private GosuPanel _panel  
      private java.awt.Rectangle _restoreBounds  
      private static java.util.Map<java.lang.String,​ISettings> _settings  
      private static java.lang.String GOSU_DIR  
      private static java.lang.String GOSU_LAB_DIR  
      private static LabFrame INSTANCE  
      static int VERSION  
      • Fields inherited from class javax.swing.JFrame

        accessibleContext, rootPane, rootPaneCheckingEnabled
      • Fields inherited from class java.awt.Frame

        CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
      • Fields inherited from class java.awt.Component

        BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
      • Fields inherited from interface javax.swing.WindowConstants

        DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
    • Constructor Summary

      Constructors 
      Constructor Description
      LabFrame()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addExperiment​(Experiment exp)  
      void checkForUpdate​(GosuPanel gosuPanel)  
      void closeTab​(java.lang.Object contentId)  
      private void configUI()  
      private static void copyExampleExperiments​(java.nio.file.Path gosuDir)  
      private static void copyExamples​(IResource from, java.nio.file.Path to)  
      static LabFrame create()  
      private static void doOpen​(java.nio.file.Path dir, java.nio.file.Path toSelect)  
      void exit()  
      static java.nio.file.Path findExperimentFile​(java.nio.file.Path dir)  
      ISettings findSettings​(java.util.function.Predicate<ISettings> matcher)  
      java.util.List<java.lang.String> getExperiments()  
      GosuPanel getGosuPanel()  
      static java.nio.file.Path getIndexDir()  
      java.awt.Rectangle getRestoreBounds()  
      static java.util.Map<java.lang.String,​ISettings> getSettings()  
      private static java.nio.file.Path getSettingsFile()  
      static java.util.List<java.nio.file.Path> getStockExampleExperiments()  
      static java.nio.file.Path getStockExamplesDir()  
      static java.nio.file.Path getStockExperimentsDir()  
      static java.nio.file.Path getUserFile​(GosuPanel gosuPanel)  
      static java.nio.file.Path getUserGosuDir()  
      static java.nio.file.Path getUserGosuEditorDir()  
      static java.lang.Integer getVersion​(GosuPanel gosuPanel)  
      static LabFrame instance()  
      static javax.swing.ImageIcon loadLabIcon()  
      Experiment loadRecentExperiment​(GosuPanel gosuPanel)  
      static void loadSettings()  
      private void makeCustomFrameDecorations()  
      private static Experiment makeScratchExperiment​(GosuPanel gosuPanel)  
      void openFile​(java.nio.file.Path anySourceFile)  
      static void openFileOrDir​(java.nio.file.Path file)  
      void openInitialFile​(IScriptPartId partId, java.nio.file.Path file)  
      void reset()  
      private void resetNow()  
      private void restoreLabState​(javax.script.Bindings bindings)  
      void restoreState​(Experiment experiment)  
      void saveLabState​(Experiment experiment)  
      private static void saveScreenProps​(Expando bindings)  
      static void saveSettings()  
      void selectTab​(java.lang.Object contentId)  
      void setExperiments​(java.util.List<java.lang.String> experiments)  
      private static void setInitialFrameBounds​(java.awt.Frame frame)  
      private void setInitialSize()  
      void setRestoreBounds​(java.awt.Rectangle restoreBounds)  
      void showMe()  
      • Methods inherited from class javax.swing.JFrame

        addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
      • Methods inherited from class java.awt.Frame

        addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
      • Methods inherited from class java.awt.Window

        addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.awt.MenuContainer

        getFont, postEvent
    • Field Detail

      • INSTANCE

        private static LabFrame INSTANCE
      • _settings

        private static java.util.Map<java.lang.String,​ISettings> _settings
      • _restoreBounds

        private java.awt.Rectangle _restoreBounds
      • _experiments

        private java.util.List<java.lang.String> _experiments
    • Constructor Detail

      • LabFrame

        public LabFrame()
                 throws java.awt.HeadlessException
        Throws:
        java.awt.HeadlessException
    • Method Detail

      • instance

        public static LabFrame instance()
      • makeCustomFrameDecorations

        private void makeCustomFrameDecorations()
      • exit

        public void exit()
      • configUI

        private void configUI()
      • setInitialSize

        private void setInitialSize()
      • resetNow

        private void resetNow()
      • openFile

        public void openFile​(java.nio.file.Path anySourceFile)
        Specified by:
        openFile in interface IGosuEditor
      • selectTab

        public void selectTab​(java.lang.Object contentId)
      • closeTab

        public void closeTab​(java.lang.Object contentId)
      • getRestoreBounds

        public java.awt.Rectangle getRestoreBounds()
      • setRestoreBounds

        public void setRestoreBounds​(java.awt.Rectangle restoreBounds)
      • getExperiments

        public java.util.List<java.lang.String> getExperiments()
      • setExperiments

        public void setExperiments​(java.util.List<java.lang.String> experiments)
      • addExperiment

        public void addExperiment​(Experiment exp)
      • create

        public static LabFrame create()
      • checkForUpdate

        public void checkForUpdate​(GosuPanel gosuPanel)
      • getUserGosuDir

        public static java.nio.file.Path getUserGosuDir()
      • getUserGosuEditorDir

        public static java.nio.file.Path getUserGosuEditorDir()
      • getIndexDir

        public static java.nio.file.Path getIndexDir()
      • getStockExperimentsDir

        public static java.nio.file.Path getStockExperimentsDir()
      • copyExampleExperiments

        private static void copyExampleExperiments​(java.nio.file.Path gosuDir)
      • copyExamples

        private static void copyExamples​(IResource from,
                                         java.nio.file.Path to)
      • getStockExamplesDir

        public static java.nio.file.Path getStockExamplesDir()
      • getStockExampleExperiments

        public static java.util.List<java.nio.file.Path> getStockExampleExperiments()
      • findExperimentFile

        public static java.nio.file.Path findExperimentFile​(java.nio.file.Path dir)
      • makeScratchExperiment

        private static Experiment makeScratchExperiment​(GosuPanel gosuPanel)
      • openFileOrDir

        public static void openFileOrDir​(java.nio.file.Path file)
      • doOpen

        private static void doOpen​(java.nio.file.Path dir,
                                   java.nio.file.Path toSelect)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • loadLabIcon

        public static javax.swing.ImageIcon loadLabIcon()
      • getUserFile

        public static java.nio.file.Path getUserFile​(GosuPanel gosuPanel)
      • getVersion

        public static java.lang.Integer getVersion​(GosuPanel gosuPanel)
                                            throws java.net.MalformedURLException
        Throws:
        java.net.MalformedURLException
      • saveLabState

        public void saveLabState​(Experiment experiment)
      • saveScreenProps

        private static void saveScreenProps​(Expando bindings)
      • restoreLabState

        private void restoreLabState​(javax.script.Bindings bindings)
      • setInitialFrameBounds

        private static void setInitialFrameBounds​(java.awt.Frame frame)
      • getSettings

        public static java.util.Map<java.lang.String,​ISettings> getSettings()
      • findSettings

        public ISettings findSettings​(java.util.function.Predicate<ISettings> matcher)
      • loadSettings

        public static void loadSettings()
      • saveSettings

        public static void saveSettings()
      • getSettingsFile

        private static java.nio.file.Path getSettingsFile()