Tools__ProjectDefinitionEditor.st
changeset 2081 7bd90dbd7018
parent 2080 b76931b8e953
child 2082 cb4532367cc0
equal deleted inserted replaced
2080:b76931b8e953 2081:7bd90dbd7018
     9 		fileReleaseNrHolder productNameHolder majorVersionNrHolder
     9 		fileReleaseNrHolder productNameHolder majorVersionNrHolder
    10 		fileRevisionNrHolder fileDescriptionHolder releaseNrHolder
    10 		fileRevisionNrHolder fileDescriptionHolder releaseNrHolder
    11 		fileMinorVersionNrHolder descriptionHolder legalCopyrightHolder
    11 		fileMinorVersionNrHolder descriptionHolder legalCopyrightHolder
    12 		isApplicationDefinitionHolder isNonGUIApplicationHolder
    12 		isApplicationDefinitionHolder isNonGUIApplicationHolder
    13 		startSinglethreadedHolder startupClassNameHolder
    13 		startSinglethreadedHolder startupClassNameHolder
    14 		startupSelectorHolder'
    14 		startupSelectorHolder prerequisitesList classListHolder
       
    15 		extensionsListHolder prerequisitesListHolder'
    15 	classVariableNames:''
    16 	classVariableNames:''
    16 	poolDictionaries:''
    17 	poolDictionaries:''
    17 	category:'Interface-Tools'
    18 	category:'Interface-Tools'
    18 !
    19 !
    19 
    20 
    24 	privateIn:ProjectDefinitionEditor
    25 	privateIn:ProjectDefinitionEditor
    25 !
    26 !
    26 
    27 
    27 Object subclass:#ExtensionsListEntry
    28 Object subclass:#ExtensionsListEntry
    28 	instanceVariableNames:'className selector'
    29 	instanceVariableNames:'className selector'
       
    30 	classVariableNames:''
       
    31 	poolDictionaries:''
       
    32 	privateIn:ProjectDefinitionEditor
       
    33 !
       
    34 
       
    35 Object subclass:#PrerequisitesListEntry
       
    36 	instanceVariableNames:'package'
    29 	classVariableNames:''
    37 	classVariableNames:''
    30 	poolDictionaries:''
    38 	poolDictionaries:''
    31 	privateIn:ProjectDefinitionEditor
    39 	privateIn:ProjectDefinitionEditor
    32 !
    40 !
    33 
    41 
    98               layout: (LayoutFrame 0 0 0 0 0 1 0 1)
   106               layout: (LayoutFrame 0 0 0 0 0 1 0 1)
    99               model: selectedClassIndexHolder
   107               model: selectedClassIndexHolder
   100               menu: classListMenu
   108               menu: classListMenu
   101               hasHorizontalScrollBar: true
   109               hasHorizontalScrollBar: true
   102               hasVerticalScrollBar: true
   110               hasVerticalScrollBar: true
   103               dataList: classList
   111               dataList: classListHolder
   104               columnHolder: classesTableColumns
   112               columnHolder: classesTableColumns
   105             )
   113             )
   106            )
   114            )
   107          
   115          
   108         )
   116         )
   109       )
   117       )
       
   118 
       
   119     "Modified: / 07-09-2006 / 11:35:14 / cg"
   110 !
   120 !
   111 
   121 
   112 compilationSpec
   122 compilationSpec
   113     "This resource specification was automatically generated
   123     "This resource specification was automatically generated
   114      by the UIPainter of ST/X."
   124      by the UIPainter of ST/X."
   472               name: 'ExtensionsTable'
   482               name: 'ExtensionsTable'
   473               layout: (LayoutFrame 0 0 0 0 0 1 0 1)
   483               layout: (LayoutFrame 0 0 0 0 0 1 0 1)
   474               model: selectedExtensionIndexHolder
   484               model: selectedExtensionIndexHolder
   475               hasHorizontalScrollBar: true
   485               hasHorizontalScrollBar: true
   476               hasVerticalScrollBar: true
   486               hasVerticalScrollBar: true
   477               dataList: extensionsList
   487               dataList: extensionsListHolder
   478               columnHolder: extensionsTableColumns
   488               columnHolder: extensionsTableColumns
   479             )
   489             )
   480            )
   490            )
   481          
   491          
   482         )
   492         )
   483       )
   493       )
       
   494 
       
   495     "Modified: / 07-09-2006 / 11:35:17 / cg"
   484 !
   496 !
   485 
   497 
   486 prerequisitesSpec
   498 prerequisitesSpec
   487     "This resource specification was automatically generated
   499     "This resource specification was automatically generated
   488      by the UIPainter of ST/X."
   500      by the UIPainter of ST/X."
   514               name: 'ExtensionsTable'
   526               name: 'ExtensionsTable'
   515               layout: (LayoutFrame 0 0 0 0 0 1 0 1)
   527               layout: (LayoutFrame 0 0 0 0 0 1 0 1)
   516               model: selectedPrerequisitesIndexHolder
   528               model: selectedPrerequisitesIndexHolder
   517               hasHorizontalScrollBar: true
   529               hasHorizontalScrollBar: true
   518               hasVerticalScrollBar: true
   530               hasVerticalScrollBar: true
   519               dataList: prerequisitesList
   531               dataList: prerequisitesListHolder
   520               columnHolder: prerequisitesTableColumns
   532               columnHolder: prerequisitesTableColumns
   521             )
   533             )
   522            )
   534            )
   523          
   535          
   524         )
   536         )
   525       )
   537       )
   526 
   538 
   527     "Created: / 05-09-2006 / 13:21:32 / cg"
   539     "Created: / 05-09-2006 / 13:21:32 / cg"
       
   540     "Modified: / 07-09-2006 / 11:35:20 / cg"
   528 !
   541 !
   529 
   542 
   530 startupSpec
   543 startupSpec
   531     "This resource specification was automatically generated
   544     "This resource specification was automatically generated
   532      by the UIPainter of ST/X."
   545      by the UIPainter of ST/X."
  1147     "Created: / 06-09-2006 / 19:24:10 / cg"
  1160     "Created: / 06-09-2006 / 19:24:10 / cg"
  1148 ! !
  1161 ! !
  1149 
  1162 
  1150 !ProjectDefinitionEditor methodsFor:'aspects'!
  1163 !ProjectDefinitionEditor methodsFor:'aspects'!
  1151 
  1164 
  1152 classList
  1165 classListHolder
  1153     classList isNil ifTrue:[
  1166     classListHolder isNil ifTrue:[
  1154         classList := #() asValue.
  1167         classListHolder := #() asValue.
  1155     ].
  1168     ].
  1156     ^ classList.
  1169     ^ classListHolder.
  1157 
  1170 
  1158     "Modified: / 05-09-2006 / 10:22:35 / cg"
  1171     "Created: / 07-09-2006 / 11:34:35 / cg"
  1159 !
  1172 !
  1160 
  1173 
  1161 classesTableColumns
  1174 classesTableColumns
  1162     classesTableColumns isNil ifTrue:[
  1175     classesTableColumns isNil ifTrue:[
  1163         classesTableColumns := self class classesTableColumns asValue.
  1176         classesTableColumns := self class classesTableColumns asValue.
  1183     ^ descriptionHolder.
  1196     ^ descriptionHolder.
  1184 
  1197 
  1185     "Modified: / 04-09-2006 / 17:58:15 / cg"
  1198     "Modified: / 04-09-2006 / 17:58:15 / cg"
  1186 !
  1199 !
  1187 
  1200 
  1188 extensionsList
  1201 extensionsListHolder
  1189     extensionsList isNil ifTrue:[
  1202     extensionsListHolder isNil ifTrue:[
  1190         extensionsList := #() asValue.
  1203         extensionsListHolder := #() asValue.
  1191     ].
  1204     ].
  1192     ^ extensionsList.
  1205     ^ extensionsListHolder.
  1193 
  1206 
  1194     "Created: / 06-09-2006 / 18:47:54 / cg"
  1207     "Created: / 07-09-2006 / 11:34:50 / cg"
  1195 !
  1208 !
  1196 
  1209 
  1197 fileDescriptionHolder
  1210 fileDescriptionHolder
  1198     fileDescriptionHolder isNil ifTrue:[
  1211     fileDescriptionHolder isNil ifTrue:[
  1199         fileDescriptionHolder := ValueHolder new.
  1212         fileDescriptionHolder := ValueHolder new.
  1362 "/ if your app needs to be notified of changes, uncomment one of the lines below:
  1375 "/ if your app needs to be notified of changes, uncomment one of the lines below:
  1363 "/       minorVersionNrHolder addDependent:self.
  1376 "/       minorVersionNrHolder addDependent:self.
  1364 "/       minorVersionNrHolder onChangeSend:#minorVersionNrHolderChanged to:self.
  1377 "/       minorVersionNrHolder onChangeSend:#minorVersionNrHolderChanged to:self.
  1365     ].
  1378     ].
  1366     ^ minorVersionNrHolder.
  1379     ^ minorVersionNrHolder.
       
  1380 !
       
  1381 
       
  1382 prerequisitesListHolder
       
  1383     prerequisitesListHolder isNil ifTrue:[
       
  1384         prerequisitesListHolder := #() asValue.
       
  1385     ].
       
  1386     ^ prerequisitesListHolder.
       
  1387 
       
  1388     "Created: / 07-09-2006 / 11:35:03 / cg"
  1367 !
  1389 !
  1368 
  1390 
  1369 productNameHolder
  1391 productNameHolder
  1370     "automatically generated by UIPainter ..."
  1392     "automatically generated by UIPainter ..."
  1371 
  1393 
  1544     ^ entries.
  1566     ^ entries.
  1545 
  1567 
  1546     "Created: / 06-09-2006 / 18:45:15 / cg"
  1568     "Created: / 06-09-2006 / 18:45:15 / cg"
  1547 !
  1569 !
  1548 
  1570 
       
  1571 fetchPrerequisitesListEntries
       
  1572     |entries|
       
  1573 
       
  1574     entries := OrderedCollection new.
       
  1575     definitionClass 
       
  1576         preRequisites do:[:packageName |
       
  1577             |entry|
       
  1578 
       
  1579             entry := PrerequisitesListEntry new.
       
  1580             entry packageName:packageName.
       
  1581             entries add:entry.
       
  1582         ].
       
  1583 
       
  1584     ^ entries.
       
  1585 
       
  1586     "Created: / 06-09-2006 / 18:45:15 / cg"
       
  1587     "Modified: / 07-09-2006 / 12:22:36 / cg"
       
  1588 !
       
  1589 
  1549 fetchValues
  1590 fetchValues
  1550     |definitionClass isApplicationDefinition|
  1591     |definitionClass isApplicationDefinition className|
  1551 
  1592 
  1552     definitionClass := self definitionClass.
  1593     definitionClass := self definitionClass.
  1553     definitionClass isNil ifTrue:[^ self ].
  1594     definitionClass isNil ifTrue:[^ self ].
  1554 
  1595 
  1555     isApplicationDefinition := definitionClass isApplicationDefinition.
  1596     isApplicationDefinition := definitionClass isApplicationDefinition.
  1556 
  1597 
  1557     self isApplicationDefinitionHolder value:isApplicationDefinition.
  1598     self isApplicationDefinitionHolder value:isApplicationDefinition.
  1558     isApplicationDefinition ifTrue:[
  1599     isApplicationDefinition ifTrue:[
  1559         self startupClassNameHolder value:(definitionClass startupClassName).
  1600         Error handle:[:ex |
       
  1601             className := definitionClass name
       
  1602         ] do:[
       
  1603             className := definitionClass startupClassName
       
  1604         ].
       
  1605         self startupClassNameHolder value:className.
  1560         self startupSelectorHolder value:(definitionClass startupSelector).
  1606         self startupSelectorHolder value:(definitionClass startupSelector).
  1561         self iconFileNameHolder value:(definitionClass iconFileName).
  1607         self iconFileNameHolder value:(definitionClass iconFileName).
  1562         self tabList value:(self class tabListForApplication).
  1608         self tabList value:(self class tabListForApplication).
  1563     ] ifFalse:[
  1609     ] ifFalse:[
  1564         self tabList value:(self class tabListForLibrary).
  1610         self tabList value:(self class tabListForLibrary).
  1577     self fileMajorVersionNrHolder value:(definitionClass fileMajorVersionNr asInteger).
  1623     self fileMajorVersionNrHolder value:(definitionClass fileMajorVersionNr asInteger).
  1578     self fileMinorVersionNrHolder value:(definitionClass fileMinorVersionNr asInteger).
  1624     self fileMinorVersionNrHolder value:(definitionClass fileMinorVersionNr asInteger).
  1579     self fileRevisionNrHolder value:(definitionClass fileRevisionNr asInteger).
  1625     self fileRevisionNrHolder value:(definitionClass fileRevisionNr asInteger).
  1580     self fileReleaseNrHolder value:(definitionClass fileReleaseNr asInteger).
  1626     self fileReleaseNrHolder value:(definitionClass fileReleaseNr asInteger).
  1581 
  1627 
  1582     self classList value:(self fetchClassListEntries).
  1628     self classListHolder value:(self fetchClassListEntries).
  1583     self extensionsList value:(self fetchExtensionsListEntries).
  1629     self extensionsListHolder value:(self fetchExtensionsListEntries).
       
  1630     self prerequisitesListHolder value:(self fetchPrerequisitesListEntries).
  1584 
  1631 
  1585     self window 
  1632     self window 
  1586         label:(isApplicationDefinition 
  1633         label:(isApplicationDefinition 
  1587                 ifTrue:'Application'
  1634                 ifTrue:'Application'
  1588                 ifFalse:'Library' ) 
  1635                 ifFalse:'Library' ) 
  1589                     , ' Definition: ',definitionClass name.
  1636                     , ' Definition: ',definitionClass name.
  1590 
  1637 
  1591     "Created: / 04-09-2006 / 16:34:39 / cg"
  1638     "Created: / 04-09-2006 / 16:34:39 / cg"
  1592     "Modified: / 06-09-2006 / 18:45:45 / cg"
  1639     "Modified: / 07-09-2006 / 12:19:36 / cg"
  1593 !
  1640 !
  1594 
  1641 
  1595 update:something with:parameter from:changedObject
  1642 update:something with:parameter from:changedObject
  1596     changedObject == self selectedTabIndexHolder ifTrue:[
  1643     changedObject == self selectedTabIndexHolder ifTrue:[
  1597         self updateMenuVisibility.
  1644         self updateMenuVisibility.
  1649 
  1696 
  1650 menuGenerateClassList
  1697 menuGenerateClassList
  1651     masterApplication
  1698     masterApplication
  1652         generateProjectDefinitionsIn:(Array with:self definitionClass).
  1699         generateProjectDefinitionsIn:(Array with:self definitionClass).
  1653 
  1700 
  1654     self classList value:(self fetchClassListEntries).
  1701     self classListHolder value:(self fetchClassListEntries).
  1655 
  1702 
  1656     "Modified: / 06-09-2006 / 21:36:44 / cg"
  1703     "Modified: / 07-09-2006 / 11:35:39 / cg"
  1657 !
  1704 !
  1658 
  1705 
  1659 menuNew
  1706 menuNew
  1660     "This method was generated by the Browser.
  1707     "This method was generated by the Browser.
  1661      It will be invoked when the menu-item 'new' is selected."
  1708      It will be invoked when the menu-item 'new' is selected."
  1663     "/ change below and add any actions as required here ...
  1710     "/ change below and add any actions as required here ...
  1664     self warn:'no action for ''new'' available.'.
  1711     self warn:'no action for ''new'' available.'.
  1665 !
  1712 !
  1666 
  1713 
  1667 menuOpen
  1714 menuOpen
  1668     self warn:'no action for ''open'' defined.'.
  1715     |projectID class answer|
  1669 
  1716 
  1670     "Modified: / 05-09-2006 / 16:28:51 / cg"
  1717     projectID := Dialog requestProject:'Project' initialAnswer:'' suggestions:nil.
       
  1718     class := ProjectDefinition definitionClassForPackage:projectID.
       
  1719     class isNil ifTrue:[
       
  1720         answer := Dialog 
       
  1721             confirmWithCancel:(resources string:'No Projectdefinition class exists for "%1".\\Create ?' with:projectID allBold)
       
  1722             labels:(resources array:#('Cancel' 'Create Library' 'Create Application' ))
       
  1723             values:#(nil LibraryDefinition ApplicationDefinition)
       
  1724             default:2
       
  1725             boxLabel:(resources string:'Create Projectdefinition').
       
  1726         answer isNil ifTrue:[^ self].
       
  1727     ].
       
  1728     answer == #LibraryDefinition ifTrue:[
       
  1729         class := LibraryDefinition definitionClassForPackage:projectID createIfAbsent:true
       
  1730     ] ifFalse:[
       
  1731         class := ApplicationDefinition definitionClassForPackage:projectID createIfAbsent:true
       
  1732     ].
       
  1733     self definitionClass:class.
       
  1734 
       
  1735     "Modified: / 07-09-2006 / 12:19:58 / cg"
  1671 !
  1736 !
  1672 
  1737 
  1673 menuRemoveClass
  1738 menuRemoveClass
  1674     |classListHolder|
  1739     |classListHolder|
  1675 
  1740 
  1676     classListHolder := self classList.
  1741     classListHolder := self classListHolder.
  1677     classListHolder value removeIndex:(self selectedClassIndexHolder value).
  1742     classListHolder value removeIndex:(self selectedClassIndexHolder value).
  1678     classListHolder changed.
  1743     classListHolder changed.
  1679 
  1744 
  1680     "Created: / 06-09-2006 / 21:31:05 / cg"
  1745     "Created: / 06-09-2006 / 21:31:05 / cg"
       
  1746     "Modified: / 07-09-2006 / 11:35:44 / cg"
  1681 !
  1747 !
  1682 
  1748 
  1683 menuSave
  1749 menuSave
  1684     self menuSaveAs:definitionClass name
  1750     self menuSaveAs:definitionClass name
  1685 
  1751 
  1767 !
  1833 !
  1768 
  1834 
  1769 selectedClass
  1835 selectedClass
  1770     |item|
  1836     |item|
  1771 
  1837 
  1772     item := self classList value at:(self selectedClassIndexHolder value).
  1838     item := self classListHolder value at:(self selectedClassIndexHolder value).
  1773 self halt.
  1839 self halt.
  1774 
  1840 
  1775     "Created: / 06-09-2006 / 21:32:20 / cg"
  1841     "Created: / 06-09-2006 / 21:32:20 / cg"
       
  1842     "Modified: / 07-09-2006 / 11:35:48 / cg"
  1776 !
  1843 !
  1777 
  1844 
  1778 selectedTabIndex
  1845 selectedTabIndex
  1779     ^ self selectedTabIndexHolder value
  1846     ^ self selectedTabIndexHolder value
  1780 
  1847 
  1835 
  1902 
  1836 selector
  1903 selector
  1837     ^ selector
  1904     ^ selector
  1838 ! !
  1905 ! !
  1839 
  1906 
       
  1907 !ProjectDefinitionEditor::PrerequisitesListEntry methodsFor:'accessing'!
       
  1908 
       
  1909 package
       
  1910     ^ package
       
  1911 
       
  1912     "Created: / 07-09-2006 / 12:23:17 / cg"
       
  1913 !
       
  1914 
       
  1915 package:something
       
  1916     package := something.
       
  1917 
       
  1918     "Created: / 07-09-2006 / 12:23:19 / cg"
       
  1919 ! !
       
  1920 
  1840 !ProjectDefinitionEditor class methodsFor:'documentation'!
  1921 !ProjectDefinitionEditor class methodsFor:'documentation'!
  1841 
  1922 
  1842 version
  1923 version
  1843     ^ '$Header$'
  1924     ^ '$Header$'
  1844 ! !
  1925 ! !