Tools__ToDoListBrowser.st
changeset 7443 a917d853cc8f
child 7454 f28b45142694
equal deleted inserted replaced
7442:53412a19e819 7443:a917d853cc8f
       
     1 "{ Package: 'stx:libtool' }"
       
     2 
       
     3 "{ NameSpace: Tools }"
       
     4 
       
     5 ApplicationModel subclass:#ToDoListBrowser
       
     6 	instanceVariableNames:'toDoList selectionIndexHolder'
       
     7 	classVariableNames:'TheOneAndOnlyToDoListBrowser'
       
     8 	poolDictionaries:''
       
     9 	category:'Interface-Smalltalk-ToDo'
       
    10 !
       
    11 
       
    12 !ToDoListBrowser class methodsFor:'documentation'!
       
    13 
       
    14 documentation
       
    15 "
       
    16     documentation to be added.
       
    17 
       
    18     [author:]
       
    19         cg (cg@FUSI)
       
    20 
       
    21     [instance variables:]
       
    22 
       
    23     [class variables:]
       
    24 
       
    25     [see also:]
       
    26 
       
    27 "
       
    28 !
       
    29 
       
    30 examples
       
    31 "
       
    32   Starting the application:
       
    33                                                                 [exBegin]
       
    34     ToDoListBrowser open
       
    35 
       
    36                                                                 [exEnd]
       
    37 
       
    38   more examples to be added:
       
    39                                                                 [exBegin]
       
    40     ... add code fragment for 
       
    41     ... executable example here ...
       
    42                                                                 [exEnd]
       
    43 "
       
    44 !
       
    45 
       
    46 history
       
    47     "Created: / 21-10-2006 / 15:05:53 / cg"
       
    48 ! !
       
    49 
       
    50 !ToDoListBrowser class methodsFor:'class initialization'!
       
    51 
       
    52 current
       
    53     ^ TheOneAndOnlyToDoListBrowser
       
    54 
       
    55     "Created: / 21-10-2006 / 20:37:48 / cg"
       
    56 !
       
    57 
       
    58 current:aBrowser
       
    59     TheOneAndOnlyToDoListBrowser := aBrowser.
       
    60 
       
    61     "Created: / 21-10-2006 / 20:38:08 / cg"
       
    62 !
       
    63 
       
    64 new
       
    65     |b|
       
    66 
       
    67     b := super new.
       
    68     TheOneAndOnlyToDoListBrowser isNil ifTrue:[
       
    69         TheOneAndOnlyToDoListBrowser := b.
       
    70     ].
       
    71     ^ b
       
    72 
       
    73     "Created: / 21-10-2006 / 20:39:03 / cg"
       
    74 ! !
       
    75 
       
    76 !ToDoListBrowser class methodsFor:'interface specs'!
       
    77 
       
    78 windowSpec
       
    79     "This resource specification was automatically generated
       
    80      by the UIPainter of ST/X."
       
    81 
       
    82     "Do not manually edit this!! If it is corrupted,
       
    83      the UIPainter may not be able to read the specification."
       
    84 
       
    85     "
       
    86      UIPainter new openOnClass:ToDoListBrowser andSelector:#windowSpec
       
    87      ToDoListBrowser new openInterface:#windowSpec
       
    88      ToDoListBrowser open
       
    89     "
       
    90 
       
    91     <resource: #canvas>
       
    92 
       
    93     ^ 
       
    94      #(FullSpec
       
    95         name: windowSpec
       
    96         window: 
       
    97        (WindowSpec
       
    98           label: 'ToDoListBrowser'
       
    99           name: 'ToDoListBrowser'
       
   100           min: (Point 10 10)
       
   101           max: (Point 1024 768)
       
   102           bounds: (Rectangle 0 0 577 395)
       
   103           menu: mainMenu
       
   104         )
       
   105         component: 
       
   106        (SpecCollection
       
   107           collection: (
       
   108            (DataSetSpec
       
   109               name: 'Table1'
       
   110               layout: (LayoutFrame 0 0 0 0 0 1 0 1)
       
   111               model: selectionIndexHolder
       
   112               menu: itemMenu
       
   113               hasHorizontalScrollBar: true
       
   114               hasVerticalScrollBar: true
       
   115               dataList: toDoList
       
   116               doubleClickSelector: itemDoubleClicked:
       
   117               columnHolder: tableColumns
       
   118             )
       
   119            )
       
   120          
       
   121         )
       
   122       )
       
   123 ! !
       
   124 
       
   125 !ToDoListBrowser class methodsFor:'menu specs'!
       
   126 
       
   127 itemMenu
       
   128     "This resource specification was automatically generated
       
   129      by the MenuEditor of ST/X."
       
   130 
       
   131     "Do not manually edit this!! If it is corrupted,
       
   132      the MenuEditor may not be able to read the specification."
       
   133 
       
   134     "
       
   135      MenuEditor new openOnClass:ToDoListBrowser andSelector:#itemMenu
       
   136      (Menu new fromLiteralArrayEncoding:(ToDoListBrowser itemMenu)) startUp
       
   137     "
       
   138 
       
   139     <resource: #menu>
       
   140 
       
   141     ^ 
       
   142      #(Menu
       
   143         (
       
   144          (MenuItem
       
   145             label: 'Browse'
       
   146             itemValue: browseItem
       
   147             translateLabel: true
       
   148           )
       
   149          (MenuItem
       
   150             label: '-'
       
   151           )
       
   152          (MenuItem
       
   153             label: 'Remove'
       
   154             itemValue: removeItem
       
   155             translateLabel: true
       
   156           )
       
   157          )
       
   158         nil
       
   159         nil
       
   160       )
       
   161 !
       
   162 
       
   163 mainMenu
       
   164     "This resource specification was automatically generated
       
   165      by the MenuEditor of ST/X."
       
   166 
       
   167     "Do not manually edit this!! If it is corrupted,
       
   168      the MenuEditor may not be able to read the specification."
       
   169 
       
   170     "
       
   171      MenuEditor new openOnClass:ToDoListBrowser andSelector:#mainMenu
       
   172      (Menu new fromLiteralArrayEncoding:(ToDoListBrowser mainMenu)) startUp
       
   173     "
       
   174 
       
   175     <resource: #menu>
       
   176 
       
   177     ^ 
       
   178      #(Menu
       
   179         (
       
   180          (MenuItem
       
   181             label: 'File'
       
   182             translateLabel: true
       
   183             submenu: 
       
   184            (Menu
       
   185               (
       
   186                (MenuItem
       
   187                   label: 'Exit'
       
   188                   itemValue: closeRequest
       
   189                   translateLabel: true
       
   190                 )
       
   191                )
       
   192               nil
       
   193               nil
       
   194             )
       
   195           )
       
   196          (MenuItem
       
   197             label: 'List'
       
   198             translateLabel: true
       
   199             submenu: 
       
   200            (Menu
       
   201               (
       
   202                (MenuItem
       
   203                   label: 'Clear'
       
   204                   itemValue: clearList
       
   205                   translateLabel: true
       
   206                 )
       
   207                )
       
   208               nil
       
   209               nil
       
   210             )
       
   211           )
       
   212          (MenuItem
       
   213             label: 'Help'
       
   214             translateLabel: true
       
   215             startGroup: right
       
   216             submenu: 
       
   217            (Menu
       
   218               (
       
   219                (MenuItem
       
   220                   label: 'Documentation'
       
   221                   itemValue: openDocumentation
       
   222                   translateLabel: true
       
   223                 )
       
   224                (MenuItem
       
   225                   label: '-'
       
   226                 )
       
   227                (MenuItem
       
   228                   label: 'About this Application...'
       
   229                   itemValue: openAboutThisApplication
       
   230                   translateLabel: true
       
   231                 )
       
   232                )
       
   233               nil
       
   234               nil
       
   235             )
       
   236           )
       
   237          )
       
   238         nil
       
   239         nil
       
   240       )
       
   241 ! !
       
   242 
       
   243 !ToDoListBrowser class methodsFor:'tableColumns specs'!
       
   244 
       
   245 tableColumns
       
   246     "This resource specification was automatically generated
       
   247      by the DataSetBuilder of ST/X."
       
   248 
       
   249     "Do not manually edit this!! If it is corrupted,
       
   250      the DataSetBuilder may not be able to read the specification."
       
   251 
       
   252     "
       
   253      DataSetBuilder new openOnClass:ToDoListBrowser andSelector:#tableColumns
       
   254     "
       
   255 
       
   256     <resource: #tableColumns>
       
   257 
       
   258     ^#(
       
   259       (DataSetColumnSpec
       
   260          label: 'Type'
       
   261          labelButtonType: Button
       
   262          width: 32
       
   263          model: severity
       
   264          canSelect: false
       
   265        )
       
   266       (DataSetColumnSpec
       
   267          label: 'Prio'
       
   268          labelButtonType: Button
       
   269          width: 30
       
   270          model: priority
       
   271          canSelect: false
       
   272        )
       
   273       (DataSetColumnSpec
       
   274          label: 'Time'
       
   275          labelButtonType: Button
       
   276          width: 50
       
   277          model: time
       
   278          canSelect: false
       
   279        )
       
   280       (DataSetColumnSpec
       
   281          label: 'Where'
       
   282          labelButtonType: Button
       
   283          model: methodOrClassName
       
   284          canSelect: false
       
   285        )
       
   286       (DataSetColumnSpec
       
   287          label: 'Message'
       
   288          labelButtonType: Button
       
   289          model: message
       
   290          canSelect: false
       
   291        )
       
   292       )
       
   293     
       
   294 ! !
       
   295 
       
   296 !ToDoListBrowser methodsFor:'accessing'!
       
   297 
       
   298 addEntry:anEntry
       
   299     self toDoList add:anEntry
       
   300 
       
   301     "Created: / 21-10-2006 / 15:38:08 / cg"
       
   302     "Modified: / 21-10-2006 / 21:14:31 / cg"
       
   303 !
       
   304 
       
   305 selectionIndexHolder
       
   306     selectionIndexHolder isNil ifTrue:[
       
   307         selectionIndexHolder := nil asValue.
       
   308     ].
       
   309     ^ selectionIndexHolder
       
   310 
       
   311     "Created: / 22-10-2006 / 02:00:41 / cg"
       
   312 !
       
   313 
       
   314 toDoList
       
   315     toDoList isNil ifTrue:[
       
   316         toDoList := ToDoList theOneAndOnlyToDoList.
       
   317     ].
       
   318     ^ toDoList
       
   319 
       
   320     "Created: / 21-10-2006 / 20:57:18 / cg"
       
   321 ! !
       
   322 
       
   323 !ToDoListBrowser methodsFor:'initialization & release'!
       
   324 
       
   325 closeDownViews
       
   326     "This is a hook method generated by the Browser.
       
   327      It will be invoked when your app/dialog-window is really closed.
       
   328      See also #closeDownViews, which is invoked before and may suppress the close
       
   329      or ask the user for confirmation."
       
   330 
       
   331     "/ change the code below as required ...
       
   332     "/ This should cleanup any leftover resources
       
   333     "/ (for example, temporary files)
       
   334     "/ super closeRequest will initiate the closeDown
       
   335 
       
   336     "/ add your code here
       
   337 
       
   338     "/ do not remove the one below ...
       
   339     ^ super closeDownViews
       
   340 !
       
   341 
       
   342 closeRequest
       
   343     "This is a hook method generated by the Browser.
       
   344      It will be invoked when your app/dialog-window is about to be
       
   345      closed (this method has a chance to suppress the close).
       
   346      See also #closeDownViews, which is invoked when the close is really done."
       
   347 
       
   348     "/ change the code below as required ...
       
   349     "/ Closing can be suppressed, by simply returning.
       
   350     "/ The 'super closeRequest' at the end will initiate the real closeDown
       
   351 
       
   352     ("self hasUnsavedChanges" false) ifTrue:[
       
   353         (self confirm:(resources string:'Close without saving ?')) ifFalse:[
       
   354             ^ self
       
   355         ]
       
   356     ].
       
   357 
       
   358     ^ super closeRequest
       
   359 
       
   360     "Modified: / 21-10-2006 / 19:21:02 / cg"
       
   361 !
       
   362 
       
   363 postBuildWith:aBuilder
       
   364     "This is a hook method generated by the Browser.
       
   365      It will be invoked during the initialization of your app/dialog,
       
   366      after all of the visual components have been built, 
       
   367      but BEFORE the top window is made visible.
       
   368      Add any app-specific actions here (reading files, setting up values etc.)
       
   369      See also #postOpenWith:, which is invoked after opening."
       
   370 
       
   371     "/ add any code here ...
       
   372 
       
   373     ^ super postBuildWith:aBuilder
       
   374 !
       
   375 
       
   376 postOpenWith:aBuilder
       
   377     "This is a hook method generated by the Browser.
       
   378      It will be invoked right after the applications window has been opened.
       
   379      Add any app-specific actions here (starting background processes etc.).
       
   380      See also #postBuildWith:, which is invoked before opening."
       
   381 
       
   382     "/ add any code here ...
       
   383 
       
   384     ^ super postOpenWith:aBuilder
       
   385 !
       
   386 
       
   387 release
       
   388     self == TheOneAndOnlyToDoListBrowser ifTrue:[
       
   389         TheOneAndOnlyToDoListBrowser := nil
       
   390     ].
       
   391     super release.
       
   392 
       
   393     "Created: / 21-10-2006 / 20:40:31 / cg"
       
   394 ! !
       
   395 
       
   396 !ToDoListBrowser methodsFor:'menu actions'!
       
   397 
       
   398 clearList
       
   399     toDoList removeAll
       
   400 
       
   401     "Created: / 22-10-2006 / 00:02:15 / cg"
       
   402 !
       
   403 
       
   404 menuSave
       
   405     "This method was generated by the Browser.
       
   406      It will be invoked when the menu-item 'save' is selected."
       
   407 
       
   408     "/ change below and add any actions as required here ...
       
   409     self warn:'no action for ''save'' defined.'.
       
   410 !
       
   411 
       
   412 menuSaveAs
       
   413     "This method was generated by the Browser.
       
   414      It will be invoked when the menu-item 'saveAs' is selected."
       
   415 
       
   416     "/ change below and add any actions as required here ...
       
   417     self warn:'no action for ''saveAs'' defined.'.
       
   418 !
       
   419 
       
   420 openAboutThisApplication
       
   421     "This method was generated by the Browser.
       
   422      It will be invoked when the menu-item 'help-about' is selected."
       
   423 
       
   424     "/ could open a customized aboutBox here ...
       
   425     super openAboutThisApplication
       
   426 !
       
   427 
       
   428 openDocumentation
       
   429     "This method was generated by the Browser.
       
   430      It will be invoked when the menu-item 'help-documentation' is selected."
       
   431 
       
   432     "/ change below as required ...
       
   433 
       
   434     "/ to open an HTML viewer on some document (under 'doc/online/<language>/' ):
       
   435     HTMLDocumentView openFullOnDocumentationFile:'TOP.html'.
       
   436 
       
   437     "/ add application-specific help files under the 'doc/online/<language>/help/appName'
       
   438     "/ directory, and open a viewer with:
       
   439     "/ HTMLDocumentView openFullOnDocumentationFile:'help/<MyApplication>/TOP.html'.
       
   440 ! !
       
   441 
       
   442 !ToDoListBrowser methodsFor:'menu actions-item'!
       
   443 
       
   444 browseItem
       
   445     (toDoList at:self selectionIndexHolder value) browse
       
   446 
       
   447     "Created: / 22-10-2006 / 02:00:20 / cg"
       
   448 !
       
   449 
       
   450 removeItem
       
   451     (toDoList removeIndex:self selectionIndexHolder value)
       
   452 
       
   453     "Created: / 22-10-2006 / 10:45:52 / cg"
       
   454 ! !
       
   455 
       
   456 !ToDoListBrowser methodsFor:'user actions'!
       
   457 
       
   458 itemDoubleClicked:itemIndex
       
   459     (toDoList at:itemIndex) browse
       
   460 
       
   461     "Created: / 22-10-2006 / 01:49:13 / cg"
       
   462 ! !
       
   463 
       
   464 !ToDoListBrowser class methodsFor:'documentation'!
       
   465 
       
   466 version
       
   467     ^ '$Header: /cvs/stx/stx/libtool/Tools__ToDoListBrowser.st,v 1.1 2006-10-23 08:57:41 cg Exp $'
       
   468 ! !