Tools__ProjectDefinitionEditor.st
changeset 2079 43f28c0ce813
parent 2078 67cc88b7b310
child 2080 b76931b8e953
equal deleted inserted replaced
2078:67cc88b7b310 2079:43f28c0ce813
     1 "{ Package: 'stx:libtool2' }"
     1 "{ Package: 'stx:libtool2' }"
     2 
     2 
     3 "{ NameSpace: Tools }"
     3 "{ NameSpace: Tools }"
     4 
     4 
     5 ResourceSpecEditor subclass:#ProjectDefinitionEditor
     5 ResourceSpecEditor subclass:#ProjectDefinitionEditor
     6 	instanceVariableNames:'definitionClass classList selectedClassIndexHolder
     6 	instanceVariableNames:'definitionClass classList extensionsList selectedClassIndexHolder
     7 		classesTableColumns revisionNrHolder companyNameHolder
     7 		classesTableColumns revisionNrHolder companyNameHolder
     8 		fileMajorVersionNrHolder minorVersionNrHolder iconFileNameHolder
     8 		fileMajorVersionNrHolder minorVersionNrHolder iconFileNameHolder
     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 startupClassHolder
    13 		startSinglethreadedHolder startupClassNameHolder
    14 		startupSelectorHolder'
    14 		startupSelectorHolder'
    15 	classVariableNames:''
    15 	classVariableNames:''
    16 	poolDictionaries:''
    16 	poolDictionaries:''
    17 	category:'Interface-Tools'
    17 	category:'Interface-Tools'
    18 !
    18 !
    19 
    19 
    20 Object subclass:#ClassListEntry
    20 Object subclass:#ClassListEntry
    21 	instanceVariableNames:'className autoloaded win32 unix'
    21 	instanceVariableNames:'className autoloaded win32 unix'
       
    22 	classVariableNames:''
       
    23 	poolDictionaries:''
       
    24 	privateIn:ProjectDefinitionEditor
       
    25 !
       
    26 
       
    27 Object subclass:#ExtensionsListEntry
       
    28 	instanceVariableNames:'className selector'
    22 	classVariableNames:''
    29 	classVariableNames:''
    23 	poolDictionaries:''
    30 	poolDictionaries:''
    24 	privateIn:ProjectDefinitionEditor
    31 	privateIn:ProjectDefinitionEditor
    25 !
    32 !
    26 
    33 
   565                     adjust: right
   572                     adjust: right
   566                   )
   573                   )
   567                  (InputFieldSpec
   574                  (InputFieldSpec
   568                     name: 'StartupClassEntryField'
   575                     name: 'StartupClassEntryField'
   569                     layout: (LayoutFrame 162 0.0 5 0 0 1.0 27 0)
   576                     layout: (LayoutFrame 162 0.0 5 0 0 1.0 27 0)
   570                     model: startupClassHolder
   577                     model: startupClassNameHolder
   571                     acceptOnReturn: true
   578                     acceptOnReturn: true
   572                     acceptOnTab: true
   579                     acceptOnTab: true
   573                     acceptOnLostFocus: true
   580                     acceptOnLostFocus: true
   574                     acceptOnPointerLeave: false
   581                     acceptOnPointerLeave: false
   575                   )
   582                   )
   623             )
   630             )
   624            )
   631            )
   625          
   632          
   626         )
   633         )
   627       )
   634       )
       
   635 
       
   636     "Modified: / 06-09-2006 / 18:41:56 / cg"
   628 !
   637 !
   629 
   638 
   630 windowSpec
   639 windowSpec
   631     "This resource specification was automatically generated
   640     "This resource specification was automatically generated
   632      by the UIPainter of ST/X."
   641      by the UIPainter of ST/X."
   672     "Modified: / 03-09-2006 / 10:57:33 / cg"
   681     "Modified: / 03-09-2006 / 10:57:33 / cg"
   673 ! !
   682 ! !
   674 
   683 
   675 !ProjectDefinitionEditor class methodsFor:'list specs'!
   684 !ProjectDefinitionEditor class methodsFor:'list specs'!
   676 
   685 
       
   686 tabList
       
   687 ^ self  tabListForApplication.
       
   688 
       
   689     "Created: / 06-09-2006 / 13:38:03 / cg"
       
   690 !
       
   691 
   677 tabListForApplication
   692 tabListForApplication
   678     "This resource specification was automatically generated
   693     "This resource specification was automatically generated
   679      by the TabListEditor of ST/X."
   694      by the TabListEditor of ST/X."
   680 
   695 
   681     "Do not manually edit this!! If it is corrupted,
   696     "Do not manually edit this!! If it is corrupted,
   686     "
   701     "
   687 
   702 
   688     <resource: #tabList>
   703     <resource: #tabList>
   689 
   704 
   690     ^     #(
   705     ^     #(
       
   706        (TabItem
       
   707           label: 'Description'
       
   708           minorKey: descriptionSpec
       
   709         )
   691        (TabItem
   710        (TabItem
   692           label: 'Classes'
   711           label: 'Classes'
   693           createNewBuilder: false
   712           createNewBuilder: false
   694           translateLabel: true
   713           translateLabel: true
   695           minorKey: classesSpec
   714           minorKey: classesSpec
   701        (TabItem
   720        (TabItem
   702           label: 'Prerequisites'
   721           label: 'Prerequisites'
   703           minorKey: prerequisitesSpec
   722           minorKey: prerequisitesSpec
   704         )
   723         )
   705        (TabItem
   724        (TabItem
   706           label: 'Description'
       
   707           minorKey: descriptionSpec
       
   708         )
       
   709        (TabItem
       
   710           label: 'Compilation'
   725           label: 'Compilation'
   711           minorKey: compilationSpec
   726           minorKey: compilationSpec
   712         )
   727         )
   713        (TabItem
   728        (TabItem
   714           label: 'Startup'
   729           label: 'Startup'
   717        )
   732        )
   718      
   733      
   719       collect:[:aTab| TabItem new fromLiteralArrayEncoding:aTab ]
   734       collect:[:aTab| TabItem new fromLiteralArrayEncoding:aTab ]
   720 
   735 
   721     "Created: / 05-09-2006 / 16:24:48 / cg"
   736     "Created: / 05-09-2006 / 16:24:48 / cg"
       
   737     "Modified: / 06-09-2006 / 18:44:34 / cg"
   722 !
   738 !
   723 
   739 
   724 tabListForLibrary
   740 tabListForLibrary
   725     "This resource specification was automatically generated
   741     "This resource specification was automatically generated
   726      by the TabListEditor of ST/X."
   742      by the TabListEditor of ST/X."
   733     "
   749     "
   734 
   750 
   735     <resource: #tabList>
   751     <resource: #tabList>
   736 
   752 
   737     ^     #(
   753     ^     #(
       
   754        (TabItem
       
   755           label: 'Description'
       
   756           minorKey: descriptionSpec
       
   757         )
   738        (TabItem
   758        (TabItem
   739           label: 'Classes'
   759           label: 'Classes'
   740           createNewBuilder: false
   760           createNewBuilder: false
   741           translateLabel: true
   761           translateLabel: true
   742           minorKey: classesSpec
   762           minorKey: classesSpec
   748        (TabItem
   768        (TabItem
   749           label: 'Prerequisites'
   769           label: 'Prerequisites'
   750           minorKey: prerequisitesSpec
   770           minorKey: prerequisitesSpec
   751         )
   771         )
   752        (TabItem
   772        (TabItem
   753           label: 'Description'
       
   754           minorKey: descriptionSpec
       
   755         )
       
   756        (TabItem
       
   757           label: 'Compilation'
   773           label: 'Compilation'
   758           minorKey: compilationSpec
   774           minorKey: compilationSpec
   759         )
       
   760        (TabItem
       
   761           label: 'Startup'
       
   762           minorKey: startupSpec
       
   763         )
   775         )
   764        )
   776        )
   765      
   777      
   766       collect:[:aTab| TabItem new fromLiteralArrayEncoding:aTab ]
   778       collect:[:aTab| TabItem new fromLiteralArrayEncoding:aTab ]
   767 
   779 
   768     "Created: / 05-09-2006 / 16:24:52 / cg"
   780     "Created: / 05-09-2006 / 16:24:52 / cg"
       
   781     "Modified: / 06-09-2006 / 18:44:38 / cg"
   769 ! !
   782 ! !
   770 
   783 
   771 !ProjectDefinitionEditor class methodsFor:'menu specs'!
   784 !ProjectDefinitionEditor class methodsFor:'menu specs'!
   772 
   785 
   773 classListMenu
   786 classListMenu
  1017 
  1030 
  1018     "Do not manually edit this!! If it is corrupted,
  1031     "Do not manually edit this!! If it is corrupted,
  1019      the DataSetBuilder may not be able to read the specification."
  1032      the DataSetBuilder may not be able to read the specification."
  1020 
  1033 
  1021     "
  1034     "
  1022      DataSetBuilder new openOnClass:ApplicationDefinitionEditor andSelector:#classesTableColumns
  1035      DataSetBuilder new openOnClass:Tools::ProjectDefinitionEditor andSelector:#classesTableColumns
  1023     "
  1036     "
  1024 
  1037 
  1025     <resource: #tableColumns>
  1038     <resource: #tableColumns>
  1026 
  1039 
  1027     ^#(
  1040     ^#(
  1028       (DataSetColumnSpec
  1041       (DataSetColumnSpec
  1029          label: 'Auto'
  1042          label: 'Auto'
  1030          labelButtonType: Button
  1043          labelButtonType: Button
  1031          rendererType: CheckToggle
  1044          rendererType: CheckToggle
  1032          model: autoloaded
  1045          model: autoloaded
       
  1046          canSelect: false
  1033        )
  1047        )
  1034       (DataSetColumnSpec
  1048       (DataSetColumnSpec
  1035          label: 'Win32'
  1049          label: 'Win32'
  1036          labelButtonType: Button
  1050          labelButtonType: Button
  1037          rendererType: CheckToggle
  1051          rendererType: CheckToggle
  1038          model: win32
  1052          model: win32
       
  1053          canSelect: false
  1039        )
  1054        )
  1040       (DataSetColumnSpec
  1055       (DataSetColumnSpec
  1041          label: 'Unix'
  1056          label: 'Unix'
  1042          labelButtonType: Button
  1057          labelButtonType: Button
  1043          rendererType: CheckToggle
  1058          rendererType: CheckToggle
  1044          model: unix
  1059          model: unix
       
  1060          canSelect: false
  1045        )
  1061        )
  1046       (DataSetColumnSpec
  1062       (DataSetColumnSpec
  1047          label: 'Class'
  1063          label: 'Class'
  1048          labelButtonType: Button
  1064          labelButtonType: Button
  1049          model: className
  1065          model: className
       
  1066          canSelect: false
  1050        )
  1067        )
  1051       )
  1068       )
  1052     
  1069     
  1053 !
  1070 !
  1054 
  1071 
  1058 
  1075 
  1059     "Do not manually edit this!! If it is corrupted,
  1076     "Do not manually edit this!! If it is corrupted,
  1060      the DataSetBuilder may not be able to read the specification."
  1077      the DataSetBuilder may not be able to read the specification."
  1061 
  1078 
  1062     "
  1079     "
  1063      DataSetBuilder new openOnClass:ApplicationDefinitionEditor andSelector:#extensionsTableColumns
  1080      DataSetBuilder new openOnClass:Tools::ProjectDefinitionEditor andSelector:#extensionsTableColumns
  1064     "
  1081     "
  1065 
  1082 
  1066     <resource: #tableColumns>
  1083     <resource: #tableColumns>
  1067 
  1084 
  1068     ^#(
  1085     ^#(
  1069       (DataSetColumnSpec
  1086       (DataSetColumnSpec
  1070          label: 'Class'
  1087          label: 'Class'
  1071          labelButtonType: Button
  1088          labelButtonType: Button
  1072          model: className
  1089          model: className
       
  1090          canSelect: false
  1073        )
  1091        )
  1074       (DataSetColumnSpec
  1092       (DataSetColumnSpec
  1075          label: 'Selector'
  1093          label: 'Selector'
  1076          labelButtonType: Button
  1094          labelButtonType: Button
  1077          model: selector
  1095          model: selector
       
  1096          canSelect: false
  1078        )
  1097        )
  1079       )
  1098       )
  1080     
  1099     
  1081 !
  1100 !
  1082 
  1101 
  1155     ^ descriptionHolder.
  1174     ^ descriptionHolder.
  1156 
  1175 
  1157     "Modified: / 04-09-2006 / 17:58:15 / cg"
  1176     "Modified: / 04-09-2006 / 17:58:15 / cg"
  1158 !
  1177 !
  1159 
  1178 
       
  1179 extensionsList
       
  1180     extensionsList isNil ifTrue:[
       
  1181         extensionsList := #() asValue.
       
  1182     ].
       
  1183     ^ extensionsList.
       
  1184 
       
  1185     "Created: / 06-09-2006 / 18:47:54 / cg"
       
  1186 !
       
  1187 
  1160 fileDescriptionHolder
  1188 fileDescriptionHolder
  1161     fileDescriptionHolder isNil ifTrue:[
  1189     fileDescriptionHolder isNil ifTrue:[
  1162         fileDescriptionHolder := ValueHolder new.
  1190         fileDescriptionHolder := ValueHolder new.
  1163     ].
  1191     ].
  1164     ^ fileDescriptionHolder.
  1192     ^ fileDescriptionHolder.
  1404     ^ startSinglethreadedHolder.
  1432     ^ startSinglethreadedHolder.
  1405 
  1433 
  1406     "Created: / 05-09-2006 / 13:34:54 / cg"
  1434     "Created: / 05-09-2006 / 13:34:54 / cg"
  1407 !
  1435 !
  1408 
  1436 
  1409 startupClassHolder
  1437 startupClassNameHolder
  1410     startupClassHolder isNil ifTrue:[
  1438     startupClassNameHolder isNil ifTrue:[
  1411         startupClassHolder := '' asValue.
  1439         startupClassNameHolder := '' asValue.
  1412     ].
  1440     ].
  1413     ^ startupClassHolder.
  1441     ^ startupClassNameHolder.
  1414 
  1442 
  1415     "Created: / 05-09-2006 / 13:34:08 / cg"
  1443     "Created: / 06-09-2006 / 18:41:52 / cg"
  1416 !
  1444 !
  1417 
  1445 
  1418 startupSelectorHolder
  1446 startupSelectorHolder
  1419     startupSelectorHolder isNil ifTrue:[
  1447     startupSelectorHolder isNil ifTrue:[
  1420         startupSelectorHolder := '' asValue.
  1448         startupSelectorHolder := '' asValue.
  1432     (list := builder bindingAt:#tabList) isNil ifTrue:[
  1460     (list := builder bindingAt:#tabList) isNil ifTrue:[
  1433         builder aspectAt:#tabList put:(list := self class tabListForApplication asValue).
  1461         builder aspectAt:#tabList put:(list := self class tabListForApplication asValue).
  1434     ].
  1462     ].
  1435     ^ list
  1463     ^ list
  1436 
  1464 
  1437     "Modified: / 05-09-2006 / 16:28:09 / cg"
  1465     "Modified: / 06-09-2006 / 17:58:08 / cg"
  1438 ! !
  1466 ! !
  1439 
  1467 
  1440 !ProjectDefinitionEditor methodsFor:'aspects-menu'!
  1468 !ProjectDefinitionEditor methodsFor:'aspects-menu'!
  1441 
  1469 
  1442 classesMenuVisibleHolder
  1470 classesMenuVisibleHolder
  1489     ^ entries.
  1517     ^ entries.
  1490 
  1518 
  1491     "Created: / 05-09-2006 / 12:31:26 / cg"
  1519     "Created: / 05-09-2006 / 12:31:26 / cg"
  1492 !
  1520 !
  1493 
  1521 
       
  1522 fetchExtensionsListEntries
       
  1523     |entries|
       
  1524 
       
  1525     entries := OrderedCollection new.
       
  1526     definitionClass 
       
  1527         extensionMethodNames pairWiseDo:[:className :selector |
       
  1528             |entry|
       
  1529 
       
  1530             entry := ExtensionsListEntry new.
       
  1531             entry className:className selector:selector.
       
  1532             entries add:entry.
       
  1533         ].
       
  1534 
       
  1535     ^ entries.
       
  1536 
       
  1537     "Created: / 06-09-2006 / 18:45:15 / cg"
       
  1538 !
       
  1539 
  1494 fetchValues
  1540 fetchValues
  1495     |definitionClass isApplicationDefinition|
  1541     |definitionClass isApplicationDefinition|
  1496 
  1542 
  1497     definitionClass := self definitionClass.
  1543     definitionClass := self definitionClass.
  1498     definitionClass isNil ifTrue:[^ self ].
  1544     definitionClass isNil ifTrue:[^ self ].
  1499 
  1545 
  1500     isApplicationDefinition := definitionClass isApplicationDefinition.
  1546     isApplicationDefinition := definitionClass isApplicationDefinition.
  1501 
  1547 
  1502     self isApplicationDefinitionHolder value:isApplicationDefinition.
  1548     self isApplicationDefinitionHolder value:isApplicationDefinition.
  1503     isApplicationDefinition ifTrue:[
  1549     isApplicationDefinition ifTrue:[
  1504         self startupClassHolder value:(definitionClass startupClass).
  1550         self startupClassNameHolder value:(definitionClass startupClassName).
  1505         self startupSelectorHolder value:(definitionClass startupSelector).
  1551         self startupSelectorHolder value:(definitionClass startupSelector).
  1506         self iconFileNameHolder value:(definitionClass iconFileName).
  1552         self iconFileNameHolder value:(definitionClass iconFileName).
  1507         self tabList value:(self class tabListForApplication).
  1553         self tabList value:(self class tabListForApplication).
  1508     ] ifFalse:[
  1554     ] ifFalse:[
  1509         self tabList value:(self class tabListForLibrary).
  1555         self tabList value:(self class tabListForLibrary).
  1523     self fileMinorVersionNrHolder value:(definitionClass fileMinorVersionNr asInteger).
  1569     self fileMinorVersionNrHolder value:(definitionClass fileMinorVersionNr asInteger).
  1524     self fileRevisionNrHolder value:(definitionClass fileRevisionNr asInteger).
  1570     self fileRevisionNrHolder value:(definitionClass fileRevisionNr asInteger).
  1525     self fileReleaseNrHolder value:(definitionClass fileReleaseNr asInteger).
  1571     self fileReleaseNrHolder value:(definitionClass fileReleaseNr asInteger).
  1526 
  1572 
  1527     self classList value:(self fetchClassListEntries).
  1573     self classList value:(self fetchClassListEntries).
       
  1574     self extensionsList value:(self fetchExtensionsListEntries).
  1528 
  1575 
  1529     self window 
  1576     self window 
  1530         label:(isApplicationDefinition 
  1577         label:(isApplicationDefinition 
  1531                 ifTrue:'Application'
  1578                 ifTrue:'Application'
  1532                 ifFalse:'Library' ) 
  1579                 ifFalse:'Library' ) 
  1533                     , ' Definition: ',definitionClass name.
  1580                     , ' Definition: ',definitionClass name.
  1534 
  1581 
  1535     "Created: / 04-09-2006 / 16:34:39 / cg"
  1582     "Created: / 04-09-2006 / 16:34:39 / cg"
  1536     "Modified: / 05-09-2006 / 16:26:45 / cg"
  1583     "Modified: / 06-09-2006 / 18:45:45 / cg"
  1537 !
  1584 !
  1538 
  1585 
  1539 update:something with:parameter from:changedObject
  1586 update:something with:parameter from:changedObject
  1540     changedObject == self selectedTabIndexHolder ifTrue:[
  1587     changedObject == self selectedTabIndexHolder ifTrue:[
  1541         self updateMenuVisibility.
  1588         self updateMenuVisibility.
  1733 
  1780 
  1734 win32:something
  1781 win32:something
  1735     win32 := something.
  1782     win32 := something.
  1736 ! !
  1783 ! !
  1737 
  1784 
       
  1785 !ProjectDefinitionEditor::ExtensionsListEntry methodsFor:'accessing'!
       
  1786 
       
  1787 className
       
  1788     ^ className
       
  1789 !
       
  1790 
       
  1791 className:classNameArg selector:selectorArg 
       
  1792     className := classNameArg.
       
  1793     selector := selectorArg.
       
  1794 !
       
  1795 
       
  1796 selector
       
  1797     ^ selector
       
  1798 ! !
       
  1799 
  1738 !ProjectDefinitionEditor class methodsFor:'documentation'!
  1800 !ProjectDefinitionEditor class methodsFor:'documentation'!
  1739 
  1801 
  1740 version
  1802 version
  1741     ^ '$Header$'
  1803     ^ '$Header$'
  1742 ! !
  1804 ! !