edu.rice.cs.drjava.ui
Class ProjectPropertiesFrame

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by edu.rice.cs.util.swing.SwingFrame
                          extended by edu.rice.cs.drjava.ui.ProjectPropertiesFrame
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants

public class ProjectPropertiesFrame
extends SwingFrame

A frame for setting Project Preferences

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
private  JButton _advancedButton
           
private  JButton _applyButton
           
private  DocumentListener _applyListener
           
private  JCheckBox _autoRefreshComponent
           
private  DirectorySelectorComponent _buildDirSelector
           
private  JButton _cancelButton
           
private  VectorFileOptionComponent _excludedFilesList
           
private  VectorAbsRelFileOptionComponent _extraClassPathList
           
private  JTextField _mainDocumentSelector
           
private  MainFrame _mainFrame
           
private  JPanel _mainPanel
           
private  SingleDisplayModel _model
           
private  JButton _okButton
           
private  DirectorySelectorComponent _projRootSelector
           
private  Map<OptionParser<?>,String> _storedPreferences
           
private  DirectorySelectorComponent _workDirSelector
           
protected  Runnable1<WindowEvent> CANCEL
          Runnable that calls _cancel.
private static int FRAME_HEIGHT
           
private static int FRAME_WIDTH
           
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, 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 javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ProjectPropertiesFrame(MainFrame mf)
          Constructs project properties frame for a new project and displays it.
 
Method Summary
 JPanel _buildDirectoryPanel()
           
 Component _excludedFilesComponent()
           
 Component _extraClassPathComponent()
           
private  boolean _getAutoRefreshStatus()
          Returns whether the project is set to automatically open new source files
private  File _getBuildDir()
          Returns the current build directory in the project profile.
private  String _getMainClass()
          Returns the fully-qualified name of the main class in the project profile ("" if none is set)
private  File _getMainFile()
          Returns the file contianing the main class in the project profile (FileOption.NULL_FILE if none is set)
private  File _getProjRoot()
          Returns the current project root in the project profile.
private  File _getWorkDir()
          Returns the current working directory in the project profile (FileOption.NULL_FILE if none is set)
 JPanel _mainDocumentSelector()
           
 JPanel _projRootPanel()
           
private  void _setupPanel(JPanel panel)
           
 JPanel _workDirectoryPanel()
           
protected  void advancedSettings()
           
 void cancel()
          Resets the frame and hides it.
private  void init()
          Initializes the components in this frame.
 void reset()
           
private  void reset(File projRoot)
           
 boolean saveSettings()
          Caches the settings in the global model
 void setVisible(boolean vis)
          Validates before changing visibility.
 
Methods inherited from class edu.rice.cs.util.swing.SwingFrame
duringInit, initDone
 
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, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, 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, transferFocusBackward, 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, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, 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, isOpaque, 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, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, 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

FRAME_WIDTH

private static final int FRAME_WIDTH
See Also:
Constant Field Values

FRAME_HEIGHT

private static final int FRAME_HEIGHT
See Also:
Constant Field Values

_mainFrame

private MainFrame _mainFrame

_model

private SingleDisplayModel _model

_okButton

private final JButton _okButton

_applyButton

private final JButton _applyButton

_cancelButton

private final JButton _cancelButton

_advancedButton

private final JButton _advancedButton

_mainPanel

private JPanel _mainPanel

_projRootSelector

private DirectorySelectorComponent _projRootSelector

_buildDirSelector

private DirectorySelectorComponent _buildDirSelector

_workDirSelector

private DirectorySelectorComponent _workDirSelector

_mainDocumentSelector

private JTextField _mainDocumentSelector

_autoRefreshComponent

private JCheckBox _autoRefreshComponent

_extraClassPathList

private VectorAbsRelFileOptionComponent _extraClassPathList

_excludedFilesList

private VectorFileOptionComponent _excludedFilesList

_storedPreferences

private Map<OptionParser<?>,String> _storedPreferences

_applyListener

private DocumentListener _applyListener

CANCEL

protected final Runnable1<WindowEvent> CANCEL
Runnable that calls _cancel.

Constructor Detail

ProjectPropertiesFrame

public ProjectPropertiesFrame(MainFrame mf)
Constructs project properties frame for a new project and displays it. Assumes that a project is active.

Method Detail

init

private void init()
Initializes the components in this frame.


cancel

public void cancel()
Resets the frame and hides it.


reset

public void reset()

reset

private void reset(File projRoot)

saveSettings

public boolean saveSettings()
Caches the settings in the global model


_getProjRoot

private File _getProjRoot()
Returns the current project root in the project profile.


_getBuildDir

private File _getBuildDir()
Returns the current build directory in the project profile.


_getWorkDir

private File _getWorkDir()
Returns the current working directory in the project profile (FileOption.NULL_FILE if none is set)


_getMainFile

private File _getMainFile()
Returns the file contianing the main class in the project profile (FileOption.NULL_FILE if none is set)


_getMainClass

private String _getMainClass()
Returns the fully-qualified name of the main class in the project profile ("" if none is set)


_getAutoRefreshStatus

private boolean _getAutoRefreshStatus()
Returns whether the project is set to automatically open new source files


_setupPanel

private void _setupPanel(JPanel panel)

_projRootPanel

public JPanel _projRootPanel()

_buildDirectoryPanel

public JPanel _buildDirectoryPanel()

_workDirectoryPanel

public JPanel _workDirectoryPanel()

_extraClassPathComponent

public Component _extraClassPathComponent()

_excludedFilesComponent

public Component _excludedFilesComponent()

_mainDocumentSelector

public JPanel _mainDocumentSelector()

setVisible

public void setVisible(boolean vis)
Validates before changing visibility. Only runs in the event thread.

Overrides:
setVisible in class Window
Parameters:
vis - true if frame should be shown, false if it should be hidden.

advancedSettings

protected void advancedSettings()