- JavaSettingsApplication
class definition
added:
#javaSourcePathHolder
#javaSourcePathHolder:
changed:
#updatePaths
#windowSpec
--- a/src/tools/JavaSettingsApplication.st Mon Jul 30 10:18:10 2012 +0000
+++ b/src/tools/JavaSettingsApplication.st Mon Jul 30 13:45:56 2012 +0000
@@ -2,14 +2,15 @@
AbstractSettingsApplication subclass:#JavaSettingsApplication
instanceVariableNames:'javaReleaseHolder javaReleaseList javaHomeHolder
- javaReleaseIsCustomHolder javaClassPathHolder'
+ javaReleaseIsCustomHolder javaClassPathHolder
+ javaSourcePathHolder'
classVariableNames:''
poolDictionaries:''
category:'Languages-Java-Tools'
!
ApplicationModel subclass:#PathEditor
- instanceVariableNames:'pathHolder selectionHolder treeList'
+ instanceVariableNames:'pathHolder selectionHolder treeList treeView'
classVariableNames:''
poolDictionaries:''
privateIn:JavaSettingsApplication
@@ -23,7 +24,7 @@
!
HierarchicalItem subclass:#PathElementItem
- instanceVariableNames:'element'
+ instanceVariableNames:'element x'
classVariableNames:''
poolDictionaries:''
privateIn:JavaSettingsApplication::PathEditor
@@ -374,37 +375,78 @@
)
extent: (Point 695 95)
)
- (FramedBoxSpec
- label: 'Classpath'
- name: 'ClasspathPanel'
- labelPosition: topLeft
- translateLabel: true
+ (VariableVerticalPanelSpec
+ name: 'VariableVerticalPanel1'
component:
(SpecCollection
collection: (
- (SubCanvasSpec
- name: 'SubCanvas1'
- layout: (LayoutFrame 0 0 0 0 0 1 0 1)
- level: 0
- hasHorizontalScrollBar: false
- hasVerticalScrollBar: false
- majorKey: #'JavaSettingsApplication::PathEditor'
- minorKey: windowSpec
- subAspectHolders:
- (Array
-
- (SubChannelInfoSpec
- subAspect: pathHolder
- aspect: javaClassPathHolder
- )
+ (FramedBoxSpec
+ label: 'Classpath'
+ name: 'ClasspathPanel'
+ labelPosition: topLeft
+ translateLabel: true
+ component:
+ (SpecCollection
+ collection: (
+ (SubCanvasSpec
+ name: 'SubCanvas1'
+ layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+ level: 0
+ hasHorizontalScrollBar: false
+ hasVerticalScrollBar: false
+ majorKey: #'JavaSettingsApplication::PathEditor'
+ minorKey: windowSpec
+ subAspectHolders:
+ (Array
+
+ (SubChannelInfoSpec
+ subAspect: pathHolder
+ aspect: javaClassPathHolder
+ )
+ )
+ createNewApplication: true
+ createNewBuilder: true
+ )
+ )
+
)
- createNewApplication: true
- createNewBuilder: true
+ )
+ (FramedBoxSpec
+ label: 'Sources'
+ name: 'SourcePathPanel'
+ labelPosition: topLeft
+ translateLabel: true
+ component:
+ (SpecCollection
+ collection: (
+ (SubCanvasSpec
+ name: 'SubCanvas2'
+ layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+ level: 0
+ hasHorizontalScrollBar: false
+ hasVerticalScrollBar: false
+ majorKey: #'JavaSettingsApplication::PathEditor'
+ minorKey: windowSpec
+ subAspectHolders:
+ (Array
+
+ (SubChannelInfoSpec
+ subAspect: pathHolder
+ aspect: javaSourcePathHolder
+ )
+ )
+ createNewApplication: true
+ createNewBuilder: true
+ )
+ )
+
+ )
)
)
)
extent: (Point 695 459)
+ handles: (Any 0.5 1.0)
)
)
@@ -496,6 +538,23 @@
^ javaReleaseList.
"Modified: / 27-07-2012 / 00:13:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+javaSourcePathHolder
+ "return/create the 'javaClassPathHolder' value holder (automatically generated)"
+
+ javaSourcePathHolder isNil ifTrue:[
+ javaSourcePathHolder := ValueHolder new.
+ ].
+ ^ javaSourcePathHolder
+!
+
+javaSourcePathHolder:something
+ "set the 'javaClassPathHolder' value holder (automatically generated)"
+
+ javaSourcePathHolder := something.
+
+ "Created: / 30-07-2012 / 14:42:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!JavaSettingsApplication methodsFor:'change & update'!
@@ -506,8 +565,10 @@
release := self javaReleaseHolder value.
release isNil ifTrue:[
self javaClassPathHolder value: #().
+ self javaSourcePathHolder value: #().
] ifFalse:[
- self javaClassPathHolder value: (Java effectiveClassPathForRelease: release)
+ self javaClassPathHolder value: (Java effectiveClassPathForRelease: release).
+ self javaSourcePathHolder value: (Java effectiveSourceDirectoriesForRelease: release).
]
"Created: / 27-07-2012 / 18:34:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -567,113 +628,6 @@
"Modified: / 27-07-2012 / 17:55:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-!JavaSettingsApplication::PathEditor class methodsFor:'interface specs'!
-
-windowSpec
- "This resource specification was automatically generated
- by the UIPainter of ST/X."
-
- "Do not manually edit this!! If it is corrupted,
- the UIPainter may not be able to read the specification."
-
- "
- UIPainter new openOnClass:JavaSettingsApplication::PathEditor andSelector:#windowSpec
- JavaSettingsApplication::PathEditor new openInterface:#windowSpec
- JavaSettingsApplication::PathEditor open
- "
-
- <resource: #canvas>
-
- ^
- #(FullSpec
- name: windowSpec
- window:
- (WindowSpec
- label: 'NewApplication'
- name: 'NewApplication'
- bounds: (Rectangle 0 0 300 300)
- )
- component:
- (SpecCollection
- collection: (
- (HierarchicalListViewSpec
- name: 'PathList'
- layout: (LayoutFrame 0 0 0 0 -82 1 0 1)
- model: selectionHolder
- hasHorizontalScrollBar: true
- hasVerticalScrollBar: true
- listModel: treeList
- highlightMode: line
- useDefaultIcons: false
- )
- (VerticalPanelViewSpec
- name: 'Buttons1'
- layout: (LayoutFrame -80 1 0 0 0 1 -22 1)
- horizontalLayout: fit
- verticalLayout: top
- horizontalSpace: 5
- verticalSpace: 3
- component:
- (SpecCollection
- collection: (
- (ActionButtonSpec
- label: 'Add...'
- name: 'ButtonAdd'
- activeHelpKey: addPathElement
- translateLabel: true
- model: actionAdd
- extent: (Point 80 22)
- )
- (ActionButtonSpec
- label: 'Edit...'
- name: 'ButtonEdit'
- activeHelpKey: editPathElement
- translateLabel: true
- model: actionEdit
- enableChannel: canEditHolder
- extent: (Point 80 22)
- )
- (ActionButtonSpec
- label: 'Move Up'
- name: 'ButtonModeUp'
- activeHelpKey: modePathElementUp
- translateLabel: true
- model: actionMoveUp
- enableChannel: canMoveUpHolder
- extent: (Point 80 22)
- )
- (ActionButtonSpec
- label: 'Move Down'
- name: 'ButtonModeDown'
- activeHelpKey: modePathElementDown
- translateLabel: true
- model: actionMoveDown
- enableChannel: canMoveDownHolder
- extent: (Point 80 22)
- )
- (LabelSpec
- name: 'SpacingLabel'
- translateLabel: true
- extent: (Point 80 22)
- )
- (ActionButtonSpec
- label: 'Remove'
- name: 'ButtonRemove'
- activeHelpKey: removePathElement
- translateLabel: true
- model: actionRemove
- enableChannel: canEditHolder
- extent: (Point 80 22)
- )
- )
-
- )
- )
- )
-
- )
- )
-! !
!JavaSettingsApplication::PathEditor class methodsFor:'plugIn spec'!
@@ -868,6 +822,17 @@
"Created: / 27-07-2012 / 18:16:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+
+!JavaSettingsApplication::PathEditor methodsFor:'hooks'!
+
+postBuildTreeView: aView
+
+ treeView := aView.
+ treeView scrolledView delegate: self.
+
+ "Created: / 29-11-2011 / 14:56:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!JavaSettingsApplication::PathEditor methodsFor:'private-tree'!
buildCategory: origin
@@ -946,6 +911,7 @@
"Created: / 27-07-2012 / 18:51:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+
!JavaSettingsApplication::PathEditor::PathElementItem methodsFor:'accessing'!
element
@@ -956,6 +922,28 @@
element := something.
!
+enabled
+ ^element enabled
+
+ "Created: / 30-07-2012 / 14:26:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+enabled: aBoolean
+ element enabled: aBoolean
+
+ "Created: / 30-07-2012 / 14:26:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+icon
+ ^element enabled ifTrue:[
+ MenuPanel iconIndicationOn
+ ] ifFalse:[
+ MenuPanel iconIndicationOff
+ ].
+
+ "Created: / 30-07-2012 / 14:11:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
label
| label |
label := element pathName asText.
@@ -973,6 +961,47 @@
"Created: / 27-07-2012 / 18:41:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!JavaSettingsApplication::PathEditor::PathElementItem methodsFor:'displaying'!
+
+__displayLabel:aLabel h:lH on:aGC x:newX y:y h:h
+
+ | l w |
+
+ l := self label.
+ x := newX.
+ [
+ w := l widthOn: aGC.
+ w > (aGC width - x)
+ ] whileTrue:[
+ l := '...' , (l copyFrom: 9).
+ ].
+
+ super displayLabel:l h:h on:aGC x:newX y:y h:h.
+
+ "Created: / 30-07-2012 / 14:18:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+displayLabel:aLabel h:lH on:aGC x:newX y:y h:h
+ x := newX.
+ super displayLabel:aLabel h:lH on:aGC x:newX y:y h:h.
+
+ "Created: / 30-07-2012 / 14:23:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaSettingsApplication::PathEditor::PathElementItem methodsFor:'testing'!
+
+isPathElementCategoryItem
+ ^false
+
+ "Created: / 30-07-2012 / 14:28:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isPathElementItem
+ ^true
+
+ "Created: / 30-07-2012 / 14:28:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!JavaSettingsApplication class methodsFor:'documentation'!
version_SVN