gui/PPRefactoringUtils.st
changeset 333 2ffae473b494
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gui/PPRefactoringUtils.st	Tue Mar 04 22:14:51 2014 +0100
@@ -0,0 +1,57 @@
+"{ Package: 'stx:goodies/petitparser/gui' }"
+
+Object subclass:#PPRefactoringUtils
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'PetitGui-Core'
+!
+
+
+!PPRefactoringUtils methodsFor:'private refactoring'!
+
+handleError: anException
+	anException actionBlock isNil
+		ifTrue: [ UIManager default inform: anException messageText ]
+		ifFalse: [ 
+			(UIManager default confirm: anException messageText) 
+				ifTrue: [ anException actionBlock value ] ].
+	anException return
+!
+
+handleWarning: anException 
+	| message |
+	message := (anException messageText endsWith: '?')
+		ifTrue: [ anException messageText ]
+		ifFalse: [ anException messageText , String cr , 'Do you want to proceed?' ].
+	(UIManager default confirm: message)
+		ifTrue: [ anException resume ]
+		ifFalse: [ anException return ]
+!
+
+performRefactoring: aRefactoring
+	[ [ aRefactoring execute ]
+		on: RBRefactoringWarning
+		do: [ :exception | self handleWarning: exception ] ]
+		on: RBRefactoringError
+		do: [ :exception | self handleError: exception ]
+!
+
+performRenameProduction: oldName from: class
+	| refactoring newName |
+	newName := UIManager default request: 'Production name:' initialAnswer: oldName.
+	refactoring := PPRenameProdcutionRefactoring onClass: class rename: oldName to: newName.
+	self performRefactoring: refactoring.
+	^ refactoring
+! !
+
+!PPRefactoringUtils class methodsFor:'documentation'!
+
+version
+    ^ '$Header: /cvs/stx/stx/goodies/petitparser/gui/PPRefactoringUtils.st,v 1.1 2014-03-04 21:14:51 cg Exp $'
+!
+
+version_CVS
+    ^ '$Header: /cvs/stx/stx/goodies/petitparser/gui/PPRefactoringUtils.st,v 1.1 2014-03-04 21:14:51 cg Exp $'
+! !
+