--- a/ProjectBrowser.st Wed Mar 24 17:05:20 1999 +0100
+++ b/ProjectBrowser.st Thu Mar 25 00:07:29 1999 +0100
@@ -244,113 +244,119 @@
<resource: #canvas>
- ^
-
- #(#FullSpec
- #name: #rightCanvasSpecForDeployment
- #window:
- #(#WindowSpec
- #label: 'NewApplication'
- #name: 'NewApplication'
- #layout: #(#LayoutFrame 216 0 173 0 515 0 472 0)
- #level: 0
- #min: #(#Point 10 10)
- #max: #(#Point 1280 1024)
- #bounds: #(#Rectangle 216 173 516 473)
- #usePreferredExtent: false
- #returnIsOKInDialog: true
- #escapeIsCancelInDialog: true
- )
- #component:
- #(#SpecCollection
- #collection:
- #(
- #(#HorizontalPanelViewSpec
- #name: 'HorizontalPanel1'
- #layout: #(#LayoutFrame 0 0 -30 1 0 1 0 1)
- #horizontalLayout: #fitSpace
- #verticalLayout: #center
- #horizontalSpace: 3
- #verticalSpace: 3
- #component:
- #(#SpecCollection
- #collection:
- #(
- #(#ActionButtonSpec
- #label: 'Cancel'
- #name: 'Button1'
- #translateLabel: true
- #model: #cancel
- #enableChannel: #modifiedChannel
- #extent: #(#Point 145 22)
- )
- #(#ActionButtonSpec
- #label: 'OK'
- #name: 'Button2'
- #translateLabel: true
- #model: #accept
- #enableChannel: #modifiedChannel
- #extent: #(#Point 146 22)
- )
- )
- )
+ ^
+ #(#FullSpec
+ #name: #rightCanvasSpecForDeployment
+ #window:
+ #(#WindowSpec
+ #label: 'NewApplication'
+ #name: 'NewApplication'
+ #layout: #(#LayoutFrame 908 0 40 0 1207 0 339 0)
+ #level: 0
+ #min: #(#Point 10 10)
+ #max: #(#Point 1280 1024)
+ #bounds: #(#Rectangle 908 40 1208 340)
+ #usePreferredExtent: false
+ #returnIsOKInDialog: true
+ #escapeIsCancelInDialog: true
+ )
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#HorizontalPanelViewSpec
+ #name: 'HorizontalPanel1'
+ #layout: #(#LayoutFrame 0 0 -30 1 0 1 0 1)
+ #horizontalLayout: #fitSpace
+ #verticalLayout: #center
+ #horizontalSpace: 3
+ #verticalSpace: 3
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#ActionButtonSpec
+ #label: 'Cancel'
+ #name: 'Button1'
+ #translateLabel: true
+ #model: #cancel
+ #enableChannel: #modifiedChannel
+ #extent: #(#Point 145 22)
+ )
+ #(#ActionButtonSpec
+ #label: 'OK'
+ #name: 'Button2'
+ #translateLabel: true
+ #model: #accept
+ #enableChannel: #modifiedChannel
+ #extent: #(#Point 146 22)
)
- #(#FramedBoxSpec
- #label: 'Delivery'
- #name: 'FramedBox1'
- #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 124 0)
- #labelPosition: #topLeft
+ )
+
+ )
+ )
+ #(#FramedBoxSpec
+ #label: 'Delivery'
+ #name: 'FramedBox1'
+ #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 150 0)
+ #labelPosition: #topLeft
+ #translateLabel: true
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#CheckBoxSpec
+ #label: 'Compiled Binary'
+ #name: 'CheckBox1'
+ #layout: #(#LayoutFrame 0 0.0 10 0 0 1.0 32 0)
+ #model: #deliverCompiledBinary
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Zip Archive'
+ #name: 'CheckBox2'
+ #layout: #(#LayoutFrame 0 0.0 38 0 0 1.0 60 0)
+ #model: #deliverZipArchive
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'GZip Archive (self extracting)'
+ #name: 'CheckBox3'
+ #layout: #(#LayoutFrame 0 0.0 66 0 0 1.0 88 0)
+ #model: #deliverSources
#translateLabel: true
- #component:
- #(#SpecCollection
- #collection:
- #(
- #(#CheckBoxSpec
- #label: 'Compiled Binary'
- #name: 'CheckBox1'
- #layout: #(#LayoutFrame 0 0.0 10 0 0 1.0 32 0)
- #model: #deliverCompiledBinary
- #translateLabel: true
- )
- #(#CheckBoxSpec
- #label: 'Zip Archive'
- #name: 'CheckBox2'
- #layout: #(#LayoutFrame 0 0.0 38 0 0 1.0 60 0)
- #model: #deliverZipArchive
- #translateLabel: true
- )
- #(#CheckBoxSpec
- #label: 'Sources'
- #name: 'CheckBox3'
- #layout: #(#LayoutFrame 0 0.0 66 0 0 1.0 88 0)
- #model: #deliverSources
- #translateLabel: true
- )
- )
- )
+ )
+ #(#CheckBoxSpec
+ #label: 'Sources'
+ #name: 'CheckBox4'
+ #layout: #(#LayoutFrame 0 0.0 94 0 0 1.0 116 0)
+ #model: #deliverGZipArchive
+ #translateLabel: true
)
- #(#FramedBoxSpec
- #label: 'Install Directory'
- #name: 'FramedBox2'
- #layout: #(#LayoutFrame 0 0.0 125 0 0 1.0 190 0)
- #labelPosition: #topLeft
- #translateLabel: true
- #component:
- #(#SpecCollection
- #collection:
- #(
- #(#InputFieldSpec
- #name: 'EntryField1'
- #layout: #(#LayoutFrame 0 0.0 5 0 0 1.0 27 0)
- #model: #installDirectory
- #modifiedChannel: #modifiedChannel
- )
- )
- )
+ )
+
+ )
+ )
+ #(#FramedBoxSpec
+ #label: 'Install Directory'
+ #name: 'FramedBox2'
+ #layout: #(#LayoutFrame 0 0.0 153 0 0 1.0 218 0)
+ #labelPosition: #topLeft
+ #translateLabel: true
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#InputFieldSpec
+ #name: 'EntryField1'
+ #layout: #(#LayoutFrame 0 0.0 5 0 0 1.0 27 0)
+ #model: #installDirectory
+ #modifiedChannel: #modifiedChannel
)
- )
+ )
+
+ )
)
+ )
+
)
+ )
!
rightCanvasSpecForEditableText
@@ -503,110 +509,148 @@
<resource: #canvas>
- ^
-
- #(#FullSpec
- #name: #rightCanvasSpecForProperties
- #window:
- #(#WindowSpec
- #name: 'NewApplication'
- #layout: #(#LayoutFrame 216 0 173 0 515 0 472 0)
- #level: 0
- #label: 'NewApplication'
- #min: #(#Point 10 10)
- #max: #(#Point 1280 1024)
- #bounds: #(#Rectangle 216 173 516 473)
- #usePreferredExtent: false
- #returnIsOKInDialog: true
- #escapeIsCancelInDialog: true
- )
- #component:
- #(#SpecCollection
- #collection:
- #(
- #(#HorizontalPanelViewSpec
- #name: 'HorizontalPanel1'
- #layout: #(#LayoutFrame 0 0 -30 1 0 1 0 1)
- #component:
- #(#SpecCollection
- #collection:
- #(
- #(#ActionButtonSpec
- #name: 'Button1'
- #label: 'Cancel'
- #translateLabel: true
- #model: #cancel
- #enableChannel: #modifiedChannel
- #extent: #(#Point 145 22)
- )
- #(#ActionButtonSpec
- #name: 'Button2'
- #label: 'OK'
- #translateLabel: true
- #model: #accept
- #enableChannel: #modifiedChannel
- #extent: #(#Point 146 22)
- )
- )
- )
- #horizontalLayout: #fitSpace
- #verticalLayout: #center
- #horizontalSpace: 3
- #verticalSpace: 3
- )
- #(#FramedBoxSpec
- #name: 'FramedBox1'
- #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 93 0)
- #component:
- #(#SpecCollection
- #collection:
- #(
- #(#RadioButtonSpec
- #name: 'RadioButton1'
- #layout: #(#LayoutFrame -1 0.0 10 0 135 0 32 0)
- #label: 'Application'
- #translateLabel: true
- #model: #projectType
- #isTriggerOnDown: true
- #select: #application
- )
- #(#RadioButtonSpec
- #name: 'RadioButton2'
- #layout: #(#LayoutFrame -1 0.0 38 0 135 0 60 0)
- #label: 'Class Library'
- #translateLabel: true
- #model: #projectType
- #isTriggerOnDown: true
- #select: #library
- )
- )
- )
- #label: 'Project Type'
- #labelPosition: #topLeft
+ ^
+ #(#FullSpec
+ #name: #rightCanvasSpecForProperties
+ #window:
+ #(#WindowSpec
+ #label: 'NewApplication'
+ #name: 'NewApplication'
+ #layout: #(#LayoutFrame 216 0 173 0 515 0 472 0)
+ #level: 0
+ #min: #(#Point 10 10)
+ #max: #(#Point 1280 1024)
+ #bounds: #(#Rectangle 216 173 516 473)
+ #usePreferredExtent: false
+ #returnIsOKInDialog: true
+ #escapeIsCancelInDialog: true
+ )
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#HorizontalPanelViewSpec
+ #name: 'HorizontalPanel1'
+ #layout: #(#LayoutFrame 0 0 -30 1 0 1 0 1)
+ #horizontalLayout: #fitSpace
+ #verticalLayout: #center
+ #horizontalSpace: 3
+ #verticalSpace: 3
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#ActionButtonSpec
+ #label: 'Cancel'
+ #name: 'Button1'
+ #translateLabel: true
+ #model: #cancel
+ #enableChannel: #modifiedChannel
+ #extent: #(#Point 145 22)
+ )
+ #(#ActionButtonSpec
+ #label: 'OK'
+ #name: 'Button2'
+ #translateLabel: true
+ #model: #accept
+ #enableChannel: #modifiedChannel
+ #extent: #(#Point 146 22)
+ )
+ )
+
+ )
+ )
+ #(#FramedBoxSpec
+ #label: 'Project Type'
+ #name: 'FramedBox1'
+ #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 93 0)
+ #labelPosition: #topLeft
+ #translateLabel: true
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#RadioButtonSpec
+ #label: 'Application'
+ #name: 'RadioButton1'
+ #layout: #(#LayoutFrame -1 0.0 10 0 135 0 32 0)
#translateLabel: true
- )
- #(#FramedBoxSpec
- #name: 'FramedBox2'
- #layout: #(#LayoutFrame 0 0.0 94 0.0 0 1.0 159 0)
- #component:
- #(#SpecCollection
- #collection:
- #(
- #(#InputFieldSpec
- #name: 'EntryField1'
- #layout: #(#LayoutFrame 0 0.0 4 0 0 1.0 26 0)
- #enableChannel: #currentProjectWasNotLoadedFromFile
- #model: #projectDirectory
- #modifiedChannel: #modifiedChannel
- )
- )
- )
- #label: 'Directory'
- #labelPosition: #topLeft
+ #model: #projectType
+ #isTriggerOnDown: true
+ #select: #application
+ )
+ #(#RadioButtonSpec
+ #label: 'Class Library'
+ #name: 'RadioButton2'
+ #layout: #(#LayoutFrame -1 0.0 38 0 135 0 60 0)
#translateLabel: true
- )
+ #model: #projectType
+ #isTriggerOnDown: true
+ #select: #library
+ )
+ )
+
+ )
+ )
+ #(#FramedBoxSpec
+ #label: 'Directory'
+ #name: 'FramedBox2'
+ #layout: #(#LayoutFrame 0 0.0 94 0.0 0 1.0 159 0)
+ #labelPosition: #topLeft
+ #translateLabel: true
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#InputFieldSpec
+ #name: 'EntryField1'
+ #layout: #(#LayoutFrame 0 0.0 4 0 0 1.0 26 0)
+ #enableChannel: #currentProjectWasNotLoadedFromFile
+ #model: #projectDirectory
+ #modifiedChannel: #modifiedChannel
+ )
+ )
+
)
- )
+ )
+ #(#FramedBoxSpec
+ #label: 'Repository'
+ #name: 'FramedBox3'
+ #layout: #(#LayoutFrame 0 0.0 160 0.0 0 1.0 243 0)
+ #labelPosition: #topLeft
+ #translateLabel: true
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#InputFieldSpec
+ #name: 'EntryField2'
+ #layout: #(#LayoutFrame 92 0.0 4 0 0 1.0 26 0)
+ #model: #repositoryModule
+ #modifiedChannel: #modifiedChannel
+ )
+ #(#InputFieldSpec
+ #name: 'EntryField3'
+ #layout: #(#LayoutFrame 92 0.0 29 0 0 1.0 51 0)
+ #model: #repositoryDirectory
+ #modifiedChannel: #modifiedChannel
+ )
+ #(#LabelSpec
+ #label: 'Module:'
+ #name: 'Label1'
+ #layout: #(#LayoutFrame 7 0 4 0 86 0 26 0)
+ #translateLabel: true
+ #adjust: #right
+ )
+ #(#LabelSpec
+ #label: 'Directory:'
+ #name: 'Label2'
+ #layout: #(#LayoutFrame 7 0 29 0 86 0 51 0)
+ #translateLabel: true
+ #adjust: #right
+ )
+ )
+
+ )
+ )
+ )
+
+ )
)
!
@@ -670,76 +714,75 @@
<resource: #canvas>
- ^
-
- #(#FullSpec
- #name: #windowSpec
- #window:
- #(#WindowSpec
- #name: 'ProjectBrowser'
- #layout: #(#LayoutFrame 216 0 173 0 779 0 495 0)
- #level: 0
- #label: 'ProjectBrowser'
- #min: #(#Point 10 10)
- #max: #(#Point 1024 768)
- #bounds: #(#Rectangle 216 173 780 496)
- #menu: #mainMenu
- #usePreferredExtent: false
- #returnIsOKInDialog: true
- #escapeIsCancelInDialog: true
+ ^
+ #(#FullSpec
+ #name: #windowSpec
+ #window:
+ #(#WindowSpec
+ #label: 'ProjectBrowser'
+ #name: 'ProjectBrowser'
+ #layout: #(#LayoutFrame 218 0 107 0 781 0 497 0)
+ #level: 0
+ #min: #(#Point 10 10)
+ #max: #(#Point 1024 768)
+ #bounds: #(#Rectangle 218 107 782 498)
+ #menu: #mainMenu
+ #usePreferredExtent: false
+ #returnIsOKInDialog: true
+ #escapeIsCancelInDialog: true
+ )
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#MenuPanelSpec
+ #name: 'ToolBar1'
+ #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 32 0)
+ #menu: #menu
+ #textDefault: true
)
- #component:
- #(#SpecCollection
- #collection:
- #(
- #(#MenuPanelSpec
- #name: 'ToolBar1'
- #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 32 0)
- #menu: #menu
- #textDefault: true
+ #(#VariableHorizontalPanelSpec
+ #name: 'VariableHorizontalPanel1'
+ #layout: #(#LayoutFrame 0 0.0 40 0.0 0 1.0 -24 1.0)
+ #handles: #(#Any 0.379433 1.0)
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#SelectionInTreeViewSpec
+ #name: 'TreeList1'
+ #model: #selectedTreeNode
+ #menu: #itemMenuHolder
+ #performer: #itemMenuPerformer
+ #hasHorizontalScrollBar: true
+ #hasVerticalScrollBar: true
+ #miniScrollerHorizontal: true
+ #showRoot: false
+ #showDirectoryIndicatorForRoot: false
+ #showDirectoryIndicator: true
+ #valueChangeSelector: #itemSelected:
+ #hierarchicalList: #projectTreeHolder
+ #selectConditionSelector: #selectionChangeAllowed
+ #highlightMode: #label
)
- #(#VariableHorizontalPanelSpec
- #name: 'VariableHorizontalPanel1'
- #layout: #(#LayoutFrame 0 0.0 40 0.0 0 1.0 -24 1.0)
- #component:
- #(#SpecCollection
- #collection:
- #(
- #(#SelectionInTreeViewSpec
- #name: 'TreeList1'
- #model: #selectedTreeNode
- #menu: #itemMenuHolder
- #performer: #itemMenuPerformer
- #hasHorizontalScrollBar: true
- #hasVerticalScrollBar: true
- #miniScrollerHorizontal: true
- #showRoot: false
- #showDirectoryIndicatorForRoot: false
- #showDirectoryIndicator: true
- #valueChangeSelector: #itemSelected:
- #hierarchicalList: #projectTreeHolder
- #selectConditionSelector: #selectionChangeAllowed
- #highlightMode: #label
- )
- #(#SubCanvasSpec
- #name: 'SubCanvas1'
- #hasHorizontalScrollBar: false
- #hasVerticalScrollBar: false
- #specHolder: #currentCanvasHolder
- )
- )
- )
- #handles: #(#Any 0.379433 1.0)
+ #(#SubCanvasSpec
+ #name: 'SubCanvas1'
+ #hasHorizontalScrollBar: false
+ #hasVerticalScrollBar: false
+ #specHolder: #currentCanvasHolder
)
- #(#UISubSpecification
- #name: 'infoBarSubSpec'
- #layout: #(#LayoutFrame 0 0.0 -24 1 0 1.0 0 1.0)
- #majorKey: #ToolApplicationModel
- #minorKey: #windowSpecForInfoBar
- )
- )
+ )
+
+ )
)
+ #(#UISubSpecification
+ #name: 'infoBarSubSpec'
+ #layout: #(#LayoutFrame 0 0.0 -24 1 0 1.0 0 1.0)
+ #majorKey: #ToolApplicationModel
+ #minorKey: #windowSpecForInfoBar
+ )
+ )
+
)
+ )
! !
!ProjectBrowser class methodsFor:'menu specs'!
@@ -821,12 +864,6 @@
#enabled: #hasProjectSelectedHolder
)
#(#MenuItem
- #label: 'Save As...'
- #translateLabel: true
- #value: #saveProjectAs
- #enabled: #hasProjectSelectedHolder
- )
- #(#MenuItem
#label: '-'
)
#(#MenuItem
@@ -978,11 +1015,6 @@
#label: '-'
)
#(#MenuItem
- #label: 'New Project'
- #translateLabel: true
- #value: #newProject
- )
- #(#MenuItem
#label: 'New SubProject'
#translateLabel: true
#value: #newSubProject
@@ -1186,6 +1218,24 @@
"Created: / 23.3.1999 / 14:18:05 / cg"
!
+deliverGZipArchive
+ "automatically generated by UIPainter ..."
+
+ "*** the code below creates a default model when invoked."
+ "*** (which may not be the one you wanted)"
+ "*** Please change as required and accept in the browser."
+
+ |holder|
+
+ (holder := builder bindingAt:#deliverGZipArchive) isNil ifTrue:[
+ builder aspectAt:#deliverGZipArchive put:(holder := ValueHolder new).
+ holder onChangeSend:#value to:[modifiedChannel value:true].
+ ].
+ ^ holder.
+
+ "Created: / 23.3.1999 / 14:18:05 / cg"
+!
+
deliverSources
"automatically generated by UIPainter ..."
@@ -1348,6 +1398,42 @@
"Created: / 23.3.1999 / 14:18:05 / cg"
!
+repositoryDirectory
+ "automatically generated by UIPainter ..."
+
+ "*** the code below creates a default model when invoked."
+ "*** (which may not be the one you wanted)"
+ "*** Please change as required and accept in the browser."
+
+ |holder|
+
+ (holder := builder bindingAt:#repositoryDirectory) isNil ifTrue:[
+ builder aspectAt:#repositoryDirectory put:(holder := ValueHolder new).
+ holder onChangeSend:#value to:[modifiedChannel value:true].
+ ].
+ ^ holder.
+
+ "Created: / 23.3.1999 / 14:18:05 / cg"
+!
+
+repositoryModule
+ "automatically generated by UIPainter ..."
+
+ "*** the code below creates a default model when invoked."
+ "*** (which may not be the one you wanted)"
+ "*** Please change as required and accept in the browser."
+
+ |holder|
+
+ (holder := builder bindingAt:#repositoryModule) isNil ifTrue:[
+ builder aspectAt:#repositoryModule put:(holder := ValueHolder new).
+ holder onChangeSend:#value to:[modifiedChannel value:true].
+ ].
+ ^ holder.
+
+ "Created: / 23.3.1999 / 14:18:05 / cg"
+!
+
rightCanvasTextHolder
"automatically generated by UIPainter ..."
@@ -1418,6 +1504,10 @@
itemMenu
|m|
+ self hasNodeSelected ifFalse:[
+ ^ self class noItemMenu
+ ].
+
self hasProjectNodeSelected ifTrue:[
^ self class projectItemMenu
].
@@ -1427,7 +1517,7 @@
self hasClassesNodeSelected ifTrue:[
^ self class classesItemMenu
].
- ^ self class noItemMenu
+ ^ nil
!
itemMenuHolder
@@ -1466,6 +1556,11 @@
!
+hasNodeSelected
+ ^ self selectedTreeNode value notNil
+
+!
+
hasProjectNodeSelected
|selectedNode|
@@ -1591,6 +1686,15 @@
self currentProjectWasNotLoadedFromFile value:p wasLoadedFromFile not.
self projectType value:(p type).
self projectDirectory value:(p directory).
+self halt.
+ self repositoryModule value:(p repositoryModule).
+ self repositoryDirectory value:(p repositoryDirectory).
+
+ self deliverCompiledBinary value:(p propertyAt:#deliverCompiledBinary) ? false.
+ self deliverGZipArchive value:(p propertyAt:#deliverGZipArchive) ? false.
+ self deliverZipArchive value:(p propertyAt:#deliverZipArchive) ? false.
+ self deliverSources value:(p propertyAt:#deliverSources) ? false.
+
modifiedChannel value:false.
p addDependent:self.
].
@@ -1605,8 +1709,17 @@
p := self currentProject.
p notNil ifTrue:[
"/ self currentProjectWasNotLoadedFromFile value:p wasLoadedFromFile not.
-"/ self projectType value:(p type).
-"/ self projectDirectory value:(p directory).
+ p type:self projectType value.
+"/ p directory:self projectDirectory value.
+
+ p repositoryModule:self repositoryModule value.
+ p repositoryDirectory:self repositoryDirectory value.
+
+ p propertyAt:#deliverCompiledBinary put:self deliverCompiledBinary value.
+ p propertyAt:#deliverSources put:self deliverSources value.
+ p propertyAt:#deliverZipArchive put:self deliverZipArchive value.
+ p propertyAt:#deliverGZipArchive put:self deliverGZipArchive value.
+
"/ modifiedChannel value:false.
].
@@ -1675,11 +1788,7 @@
accept
"save values from aspects into the project"
- |p|
-
- p := self currentProject.
-
- self halt.
+ self saveAspectsIntoProject.
!
cancel