"
COPYRIGHT (c) 2006 by eXept Software AG
All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
inclusion of the above copyright notice. This software may not
be provided or otherwise made available to, or used by, any
other person. No title to or ownership of the software is
hereby transferred.
"
"{ Package: 'stx:libtool' }"
"{ NameSpace: Tools }"
ApplicationModel subclass:#ProjectCheckerBrowser
instanceVariableNames:'projectCheckerHolder problemSelectionHolder problemListHolder
infoPanel'
classVariableNames:''
poolDictionaries:''
category:'System-Support-Projects'
!
!ProjectCheckerBrowser class methodsFor:'documentation'!
copyright
"
COPYRIGHT (c) 2006 by eXept Software AG
All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
inclusion of the above copyright notice. This software may not
be provided or otherwise made available to, or used by, any
other person. No title to or ownership of the software is
hereby transferred.
"
!
documentation
"
A simple tool to browse issues found by ProjectChecker.
[author:]
Jan Vrany <jan.vrany@fit.cvut.cz>
[instance variables:]
[class variables:]
[see also:]
ProjectChecker
"
! !
!ProjectCheckerBrowser 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:Tools::ProjectCheckerBrowser andSelector:#windowSpec
Tools::ProjectCheckerBrowser new openInterface:#windowSpec
Tools::ProjectCheckerBrowser open
"
<resource: #canvas>
^
#(FullSpec
name: windowSpec
window:
(WindowSpec
label: 'Package Issues'
name: 'Package Issues'
bounds: (Rectangle 0 0 581 370)
)
component:
(SpecCollection
collection: (
(VariableVerticalPanelSpec
name: 'VariableVerticalPanel1'
layout: (LayoutFrame 0 0 0 0 0 1 -30 1)
component:
(SpecCollection
collection: (
(ViewSpec
name: 'ListPanel'
component:
(SpecCollection
collection: (
(SubCanvasSpec
name: 'InfoPanel'
layout: (LayoutFrame 0 0 0 0 0 1 40 0)
level: 0
initiallyInvisible: true
hasHorizontalScrollBar: false
hasVerticalScrollBar: false
clientKey: infoPanel
createNewBuilder: false
)
(SelectionInListModelViewSpec
name: 'List'
layout: (LayoutFrame 0 0 0 0 0 1 0 1)
model: problemSelectionHolder
hasHorizontalScrollBar: true
hasVerticalScrollBar: true
listModel: problemListHolder
useIndex: false
highlightMode: line
)
)
)
)
(ViewSpec
name: 'Detail'
component:
(SpecCollection
collection: (
(HTMLViewSpec
name: 'Description'
layout: (LayoutFrame 0 0 0 0 0 1 0 1)
level: 0
visibilityChannel: rationaleVisibleHolder
hasHorizontalScrollBar: true
hasVerticalScrollBar: true
htmlText: problemDescriptionAspect
postBuildCallback: setupHTMLView:
)
)
)
)
)
)
handles: (Any 0.5 1.0)
)
(HorizontalPanelViewSpec
name: 'ButtonPanel'
layout: (LayoutFrame 0 0 -30 1 0 1 0 1)
horizontalLayout: fit
verticalLayout: center
horizontalSpace: 3
verticalSpace: 3
component:
(SpecCollection
collection: (
(ActionButtonSpec
label: 'Check Again'
name: 'CheckAgain'
translateLabel: true
model: doCheckAgain
extent: (Point 289 22)
)
(ActionButtonSpec
label: 'Close'
name: 'CloseButton'
translateLabel: true
model: doClose
extent: (Point 289 22)
)
)
)
)
)
)
)
! !
!ProjectCheckerBrowser methodsFor:'accessing'!
problemList: problems
self problemListHolder value: problems
"Created: / 13-02-2012 / 17:03:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
projectChecker
^self projectCheckerHolder value
"Created: / 13-02-2012 / 17:03:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
projectChecker: value
self projectCheckerHolder value: value
"Created: / 13-02-2012 / 17:03:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ProjectCheckerBrowser methodsFor:'actions'!
doCheckAgain
<resource: #uiCallback>
self infoPanel showProgressLabeled: (resources string: 'Checking...') while:[
| checker |
checker := self projectChecker.
checker check.
self problemListHolder value: checker problems.
checker problems isEmptyOrNil ifTrue:[
self infoPanel
reset;
showMessage: (resources string: 'Excellent, no problems found!!');
addButtonWithLabel:(resources string:'Close') action:[self doClose]
]
]
"Modified: / 26-07-2012 / 10:50:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
doClose
<resource: #uiCallback>
self closeRequest
"Modified: / 25-07-2012 / 17:47:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
doFix: index
<resource: #uiCallback>
[
self problemSelectionHolder value doFix: index
] on: UserNotification do:[:not|
self infoPanel showMessage: not description.
]
"Created: / 26-07-2012 / 10:06:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ProjectCheckerBrowser methodsFor:'aspects'!
infoPanel
infoPanel isNil ifTrue:[
infoPanel := InlineMessageDialog new
].
^ infoPanel
"Created: / 09-02-2012 / 19:23:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
problemDescriptionAspect
<resource: #uiAspect>
|holder|
(holder := builder bindingAt:#problemDescriptionAspect) isNil ifTrue:[
holder := (AspectAdaptor forAspect: #descriptionAndFixes)
subjectChannel: self problemSelectionHolder.
].
^ holder.
"Modified: / 26-07-2012 / 09:44:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
problemListHolder
<resource: #uiAspect>
"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 it in the browser."
"*** (and replace this comment by something more useful ;-)"
problemListHolder isNil ifTrue:[
problemListHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/ problemListHolder addDependent:self.
"/ problemListHolder onChangeSend:#problemListHolderChanged to:self.
].
^ problemListHolder.
"Modified: / 13-02-2012 / 18:47:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
problemSelectionHolder
<resource: #uiAspect>
"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 it in the browser."
"*** (and replace this comment by something more useful ;-)"
problemSelectionHolder isNil ifTrue:[
problemSelectionHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/ problemSelectionHolder addDependent:self.
"/ problemSelectionHolder onChangeSend:#problemSelectionHolderChanged to:self.
].
^ problemSelectionHolder.
!
projectCheckerHolder
"return/create the 'projectCheckerHolder' value holder (automatically generated)"
projectCheckerHolder isNil ifTrue:[
projectCheckerHolder := ValueHolder new.
projectCheckerHolder addDependent:self.
].
^ projectCheckerHolder
!
projectCheckerHolder:something
"set the 'projectCheckerHolder' value holder (automatically generated)"
|oldValue newValue|
projectCheckerHolder notNil ifTrue:[
oldValue := projectCheckerHolder value.
projectCheckerHolder removeDependent:self.
].
projectCheckerHolder := something.
projectCheckerHolder notNil ifTrue:[
projectCheckerHolder addDependent:self.
].
newValue := projectCheckerHolder value.
oldValue ~~ newValue ifTrue:[
self update:#value with:newValue from:projectCheckerHolder.
].
! !
!ProjectCheckerBrowser methodsFor:'change & update'!
update:something with:aParameter from:changedObject
"Invoked when an object that I depend upon sends a change notification."
"stub code automatically generated - please change as required"
changedObject == projectCheckerHolder ifTrue:[
self updateFromProjectCheckerHolder.
^ self.
].
super update:something with:aParameter from:changedObject
!
updateFromProjectCheckerHolder
self problemListHolder value: self projectChecker problems.
"Modified: / 25-07-2012 / 18:01:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ProjectCheckerBrowser methodsFor:'hooks'!
setupHTMLView:aView
aView painter
leftMargin:20;
topMargin:5.
"Created: / 23-02-2012 / 14:04:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ProjectCheckerBrowser class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/libtool/Tools__ProjectCheckerBrowser.st,v 1.1 2012-07-26 11:59:59 vrany Exp $'
!
version_CVS
^ '$Header: /cvs/stx/stx/libtool/Tools__ProjectCheckerBrowser.st,v 1.1 2012-07-26 11:59:59 vrany Exp $'
!
version_SVN
^ '§Id: Tools__ProjectCheckerBrowser.st 8024 2012-07-26 10:10:37Z vranyj1 §'
! !