From: <an...@us...> - 2009-03-04 17:04:30
|
Revision: 9001 http://wonder.svn.sourceforge.net/wonder/?rev=9001&view=rev Author: anjo Date: 2009-03-04 17:04:21 +0000 (Wed, 04 Mar 2009) Log Message: ----------- - refactoring of confirm pages to use just one page - added 'stop all' for selected instances - added 'delete all' for selected instances Modified Paths: -------------- trunk/Wonder/Applications/JavaMonitor/Components/AppDetailPage.wo/AppDetailPage.html trunk/Wonder/Applications/JavaMonitor/Components/AppDetailPage.wo/AppDetailPage.wod trunk/Wonder/Applications/JavaMonitor/JavaMonitor.launch trunk/Wonder/Applications/JavaMonitor/Resources/Properties trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/AppDetailPage.java trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/ApplicationsPage.java trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/HostsPage.java trunk/Wonder/Frameworks/Misc/JavaMonitorFramework/Sources/com/webobjects/monitor/_private/MSiteConfig.java Added Paths: ----------- trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.api trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.wo/ trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.wo/ConfirmationPage.html trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.wo/ConfirmationPage.wod trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.wo/ConfirmationPage.woo trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/ConfirmationPage.java Removed Paths: ------------- trunk/Wonder/Applications/JavaMonitor/Components/AppConfirmDeletePage.api trunk/Wonder/Applications/JavaMonitor/Components/AppConfirmDeletePage.wo/ trunk/Wonder/Applications/JavaMonitor/Components/HostConfirmDeletePage.api trunk/Wonder/Applications/JavaMonitor/Components/HostConfirmDeletePage.wo/ trunk/Wonder/Applications/JavaMonitor/Components/InstConfirmDeletePage.api trunk/Wonder/Applications/JavaMonitor/Components/InstConfirmDeletePage.wo/ trunk/Wonder/Applications/JavaMonitor/Components/StopAllConfirmPage.api trunk/Wonder/Applications/JavaMonitor/Components/StopAllConfirmPage.wo/ trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/AppConfirmDeletePage.java trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/HostConfirmDeletePage.java trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/InstConfirmDeletePage.java trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/StopAllConfirmPage.java Deleted: trunk/Wonder/Applications/JavaMonitor/Components/AppConfirmDeletePage.api =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Components/AppConfirmDeletePage.api 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Applications/JavaMonitor/Components/AppConfirmDeletePage.api 2009-03-04 17:04:21 UTC (rev 9001) @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="macintosh" standalone="yes"?> -<wodefinitions> - <wo class="AppConfirmDeletePage" wocomponentcontent="NO"> - - </wo> -</wodefinitions> \ No newline at end of file Modified: trunk/Wonder/Applications/JavaMonitor/Components/AppDetailPage.wo/AppDetailPage.html =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Components/AppDetailPage.wo/AppDetailPage.html 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Applications/JavaMonitor/Components/AppDetailPage.wo/AppDetailPage.html 2009-03-04 17:04:21 UTC (rev 9001) @@ -269,7 +269,10 @@ <webobject name = "ConfigButton"></webobject> </webobject> </td> - <td> </td> + <td><webobject name = "InstDeleteAllLink"> + <webobject name = "DeleteButton"></webobject> + </webobject> + </td> </tr> </webobject> </table> Modified: trunk/Wonder/Applications/JavaMonitor/Components/AppDetailPage.wo/AppDetailPage.wod =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Components/AppDetailPage.wo/AppDetailPage.wod 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Applications/JavaMonitor/Components/AppDetailPage.wo/AppDetailPage.wod 2009-03-04 17:04:21 UTC (rev 9001) @@ -148,6 +148,10 @@ action = deleteInstanceClicked; } +InstDeleteAllLink: WOHyperlink { + action = deleteAllInstancesClicked; +} + InstIndex: WOString { value = currentInstance.displayName; } Added: trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.api =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.api (rev 0) +++ trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.api 2009-03-04 17:04:21 UTC (rev 9001) @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<wodefinitions> + <wo wocomponentcontent="false" class="ConfirmationPage.java"> + + </wo> +</wodefinitions> \ No newline at end of file Added: trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.wo/ConfirmationPage.html =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.wo/ConfirmationPage.html (rev 0) +++ trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.wo/ConfirmationPage.html 2009-03-04 17:04:21 UTC (rev 9001) @@ -0,0 +1,30 @@ +<WEBOBJECT name=NavPage></WEBOBJECT> +<BR> +<FONT SIZE=+1><webobject name="Question" /><BR> +</FONT> +<BR> +<BR> +<FONT SIZE=-1><webobject name="Explaination" /></FONT> + +<TABLE BORDER=0 CELLPADDING=40 CELLSPACING=10> +<TR> +<TD> +<FONT SIZE=+1> + <WEBOBJECT name=ConfirmClicked>Yes</WEBOBJECT> +</FONT> +</TD> +<TD> +<FONT SIZE=+1> + <WEBOBJECT name=CancelClicked>No</WEBOBJECT> +</FONT> +</TD> +</TR> +</TABLE> + +</CENTER> + </TD></TR> +</TABLE> +</CENTER> + +</BODY> +</HTML> Added: trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.wo/ConfirmationPage.wod =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.wo/ConfirmationPage.wod (rev 0) +++ trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.wo/ConfirmationPage.wod 2009-03-04 17:04:21 UTC (rev 9001) @@ -0,0 +1,21 @@ +Question: WOString { + value = delegate.question; + escapeHTML = false; +} + +Explaination: WOString { + value = delegate.explaination; + escapeHTML = false; +} + +CancelClicked: WOHyperlink { + action = delegate.cancel; +} + +ConfirmClicked: WOHyperlink { + action = delegate.confirm; +} +NavPage: NavigationPage { + currentPage = delegate.pageType; +} + Added: trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.wo/ConfirmationPage.woo =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.wo/ConfirmationPage.woo (rev 0) +++ trunk/Wonder/Applications/JavaMonitor/Components/ConfirmationPage.wo/ConfirmationPage.woo 2009-03-04 17:04:21 UTC (rev 9001) @@ -0,0 +1,4 @@ +{ + "WebObjects Release" = "WebObjects 5.0"; + encoding = "UTF-8"; +} \ No newline at end of file Deleted: trunk/Wonder/Applications/JavaMonitor/Components/HostConfirmDeletePage.api =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Components/HostConfirmDeletePage.api 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Applications/JavaMonitor/Components/HostConfirmDeletePage.api 2009-03-04 17:04:21 UTC (rev 9001) @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="macintosh" standalone="yes"?> -<wodefinitions> - <wo class="HostConfirmDeletePage" wocomponentcontent="NO"> - - </wo> -</wodefinitions> \ No newline at end of file Deleted: trunk/Wonder/Applications/JavaMonitor/Components/InstConfirmDeletePage.api =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Components/InstConfirmDeletePage.api 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Applications/JavaMonitor/Components/InstConfirmDeletePage.api 2009-03-04 17:04:21 UTC (rev 9001) @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="macintosh" standalone="yes"?> -<wodefinitions> - <wo class="InstConfirmDeletePage" wocomponentcontent="NO"> - - </wo> -</wodefinitions> \ No newline at end of file Deleted: trunk/Wonder/Applications/JavaMonitor/Components/StopAllConfirmPage.api =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Components/StopAllConfirmPage.api 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Applications/JavaMonitor/Components/StopAllConfirmPage.api 2009-03-04 17:04:21 UTC (rev 9001) @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="macintosh" standalone="yes"?> -<wodefinitions> - <wo class="StopAllConfirmPage" wocomponentcontent="NO"> - - </wo> -</wodefinitions> \ No newline at end of file Modified: trunk/Wonder/Applications/JavaMonitor/JavaMonitor.launch =================================================================== --- trunk/Wonder/Applications/JavaMonitor/JavaMonitor.launch 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Applications/JavaMonitor/JavaMonitor.launch 2009-03-04 17:04:21 UTC (rev 9001) @@ -11,7 +11,7 @@ </listAttribute> <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.objectstyle.wolips.launching.WORuntimeClasspathProvider"/> <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.webobjects.monitor.application.Application"/> -<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-WOPort 2005"/> +<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-WOPort 2005 -_DeploymentDebugging YES"/> <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="JavaMonitor"/> <stringAttribute key="org.objectstyle.wolips.launchinfo" value="-D2WWebAssistantEnabled=<>false<>true<>-DWORoot=<>Automatic<>true<>-DWORootDirectory=<>Automatic<>true<>-DWOUserDirectory=<>Automatic<>true<>-EOAdaptorDebugEnabled=<>false<>true<>-WOAcceptMalformedCookies<>false<>true<>-WOAdaptorURL<>http://127.0.0.1/cgi-bin/WebObjects<>true<>-WOAdditionalAdaptors<>()<>true<>-WOAllowRapidTurnaround<>true<>true<>-WOAllowsCacheControlHeader<>true<>true<>-WOAllowsConcurrentRequestHandling<>false<>true<>-WOAutoOpenClientApplication<>true<>true<>-WOAutoOpenInBrowser<>false<>true<>-WOApplicationBaseURL<>/WebObjects<>true<>-WOApplicationClassName<>Automatic<>true<>-WOCachingEnabled<>false<>true<>-WOContextClassName<>WOContext<>true<>-WODebuggingEnabled<>true<>true<>-WOAdaptor<>WODefaultAdaptor<>true<>-WODefaultUndoStackLimit<>10<>true<>-WODirectConnectEnabled<>true<>true<>-WODisplayExceptionPages<>true<>true<>-WOIDE<>WOLips<>true<>-WOFrameworksBaseURL<>/WebObjects/Frameworks<>true<>-WOGenerateWSDL<>true<>true<>-WOIncludeCommentsInResponse<>false<>true<>-WOLifebeatDestinationPort<>1085<>true<>-WOLifebeatEnabled<>true<>true<>-WOLifebeatInterval<>30<>true<>-WOListenQueueSize<>128<>true<>-WOMaxHeaders<>200<>true<>-WOMaxIOBufferSize<>8196<>true<>-WOMaxSocketIdleTime<>180000<>true<>-WOMissingResourceSearchEnabled<>true<>true<>-WOMonitorEnabled<>false<>true<>-WOSessionTimeOut<>3600<>true<>-WOSessionStoreClassName<>WOServerSessionStore<>true<>-WOSMTPHost<>smtp<>true<>-WOSocketCacheSize<>100<>true<>-WOSocketMonitorSleepTime<>50<>true<>-WOWorkerThreadCount<>8<>true<>-WOWorkerThreadCountMin<>16<>true<>-WOWorkerThreadCountMax<>256<>true<>-WSAssistantEnabled<>false<>true"/> </launchConfiguration> Modified: trunk/Wonder/Applications/JavaMonitor/Resources/Properties =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Resources/Properties 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Applications/JavaMonitor/Resources/Properties 2009-03-04 17:04:21 UTC (rev 9001) @@ -17,4 +17,4 @@ WOAllowsConcurrentRequestHandling=true WOAllowRapidTurnaround=false -WODeploymentBackups=true \ No newline at end of file +WODeploymentBackups=true Deleted: trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/AppConfirmDeletePage.java =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/AppConfirmDeletePage.java 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/AppConfirmDeletePage.java 2009-03-04 17:04:21 UTC (rev 9001) @@ -1,53 +0,0 @@ -package com.webobjects.monitor.application; - -/* - \xA9 Copyright 2006 - 2007 Apple Computer, Inc. All rights reserved. - - IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. (\xD2Apple\xD3) in consideration of your agreement to the following terms, and your use, installation, modification or redistribution of this Apple software constitutes acceptance of these terms. If you do not agree with these terms, please do not use, install, modify or redistribute this Apple software. - - In consideration of your agreement to abide by the following terms, and subject to these terms, Apple grants you a personal, non-exclusive license, under Apple\xD5s copyrights in this original Apple software (the \xD2Apple Software\xD3), to use, reproduce, modify and redistribute the Apple Software, with or without modifications, in source and/or binary forms; provided that if you redistribute the Apple Software in its entirety and without modifications, you must retain this notice and the following text and disclaimers in all such redistributions of the Apple Software. Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to endorse or promote products derived from the Apple Software without specific prior written permission from Apple. Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by Apple herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the Apple Software may be incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - */ -import com.webobjects.appserver.WOApplication; -import com.webobjects.appserver.WOComponent; -import com.webobjects.appserver.WOContext; -import com.webobjects.monitor._private.MApplication; - -public class AppConfirmDeletePage extends MonitorComponent { - private static final long serialVersionUID = -755026353794418667L; - - public AppConfirmDeletePage(WOContext aWocontext) { - super(aWocontext); - } - - public WOComponent deleteClicked() { - handler().startWriting(); - try { - siteConfig().removeApplication_M(myApplication()); - - if (siteConfig().hostArray().count() != 0) { - handler().sendRemoveApplicationToWotaskds(myApplication(), siteConfig().hostArray()); - } - } finally { - handler().endWriting(); - } - - return ApplicationsPage.create(context()); - } - - public WOComponent cancelClicked() { - return ApplicationsPage.create(context()); - } - - public static AppConfirmDeletePage create(WOContext context, MApplication currentApplication) { - assert currentApplication != null; - AppConfirmDeletePage page = (AppConfirmDeletePage) context.page().pageWithName(AppConfirmDeletePage.class.getName()); - page.setMyApplication(currentApplication); - return page; - } - -} \ No newline at end of file Modified: trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/AppDetailPage.java =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/AppDetailPage.java 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/AppDetailPage.java 2009-03-04 17:04:21 UTC (rev 9001) @@ -356,8 +356,42 @@ } public WOComponent deleteInstanceClicked() { - InstConfirmDeletePage aPage = (InstConfirmDeletePage) InstConfirmDeletePage.create(context(), currentInstance); - return aPage; + + final MInstance instance = currentInstance; + + return ConfirmationPage.create(context(), new ConfirmationPage.Delegate() { + + public WOComponent cancel() { + return AppDetailPage.create(context(), instance.application()); + } + + public WOComponent confirm() { + handler().startWriting(); + try { + siteConfig().removeInstance_M(instance); + + if (siteConfig().hostArray().count() != 0) { + handler().sendRemoveInstancesToWotaskds(new NSArray(instance), siteConfig().hostArray()); + } + } finally { + handler().endWriting(); + } + return AppDetailPage.create(context(), instance.application()); + } + + public String explaination() { + return "Selecting 'Yes' will shutdown any running instances of this application, delete all instance configurations, and remove this application from the Application page."; + } + + public int pageType() { + return APP_PAGE; + } + + public String question() { + return "Are you sure you want to delete this instance (" + instance.displayName() + " running on " + instance.hostName() + ")"; + } + + }); } public String linkToWOStats() { @@ -532,9 +566,91 @@ } public WOComponent stopAllClicked() { - return StopAllConfirmPage.create(context(), myApplication()); + + final NSArray instances = selectedInstances().immutableClone(); + final MApplication application = myApplication(); + + return ConfirmationPage.create(context(), new ConfirmationPage.Delegate() { + + public WOComponent cancel() { + return AppDetailPage.create(context(), application); + } + + public WOComponent confirm() { + handler().startReading(); + try { + if (application.hostArray().count() != 0) { + handler().sendStopInstancesToWotaskds(instances, application.hostArray()); + } + + for (int i = 0; i < instances.count(); i++) { + MInstance anInst = (MInstance) instances.objectAtIndex(i); + if (anInst.state != MObject.DEAD) { + anInst.state = MObject.STOPPING; + } + } + } finally { + handler().endReading(); + } + return AppDetailPage.create(context(), application); + } + + public String explaination() { + return "Selecting 'Yes' will shutdown the selected instances of this application."; + } + + public int pageType() { + return APP_PAGE; + } + + public String question() { + return "Are you sure you want to stop the " + instances.count() + " instances of " + application.name() + "?"; + } + + }); } + + public WOComponent deleteAllInstancesClicked() { + + final NSArray instances = selectedInstances().immutableClone(); + final MApplication application = myApplication(); + + return ConfirmationPage.create(context(), new ConfirmationPage.Delegate() { + + public WOComponent cancel() { + return AppDetailPage.create(context(), application); + } + + public WOComponent confirm() { + handler().startWriting(); + try { + siteConfig().removeInstances_M(application, instances); + + if (siteConfig().hostArray().count() != 0) { + handler().sendRemoveInstancesToWotaskds(instances, siteConfig().hostArray()); + } + } finally { + handler().endWriting(); + } + return AppDetailPage.create(context(), application); + } + + public String explaination() { + return "Selecting 'Yes' will shutdown any shutdown the selected instances of this application, and delete all matching instance configurations."; + } + + public int pageType() { + return APP_PAGE; + } + + public String question() { + return "Are you sure you want to delete the selected <i>" + instances.count() + "</i> instances of application " + application.name() + "?"; + } + + }); + } + public WOComponent autoRecoverEnableAllClicked() { handler().startReading(); try { Modified: trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/ApplicationsPage.java =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/ApplicationsPage.java 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/ApplicationsPage.java 2009-03-04 17:04:21 UTC (rev 9001) @@ -89,7 +89,42 @@ } public WOComponent deleteClicked() { - return AppConfirmDeletePage.create(context(), currentApplication); + + final MApplication application = currentApplication; + + return ConfirmationPage.create(context(), new ConfirmationPage.Delegate() { + + public WOComponent cancel() { + return ApplicationsPage.create(context()); + } + + public WOComponent confirm() { + handler().startWriting(); + try { + siteConfig().removeApplication_M(application); + + if (siteConfig().hostArray().count() != 0) { + handler().sendRemoveApplicationToWotaskds(application, siteConfig().hostArray()); + } + } finally { + handler().endWriting(); + } + return ApplicationsPage.create(context()); + } + + public String explaination() { + return "Selecting 'Yes' will shutdown any running instances of this application, delete all instance configurations, and remove this application from the Application page."; + } + + public int pageType() { + return APP_PAGE; + } + + public String question() { + return "Are you sure you want to delete the <I>" + application.name() + "</I> Application?"; + } + + }); } public WOComponent configureClicked() { Added: trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/ConfirmationPage.java =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/ConfirmationPage.java (rev 0) +++ trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/ConfirmationPage.java 2009-03-04 17:04:21 UTC (rev 9001) @@ -0,0 +1,38 @@ +package com.webobjects.monitor.application; + +import com.webobjects.appserver.WOComponent; +import com.webobjects.appserver.WOContext; + +public class ConfirmationPage extends MonitorComponent { + + public interface Delegate { + public int pageType(); + public String question(); + public String explaination(); + public WOComponent confirm(); + public WOComponent cancel(); + } + + private Delegate _delegate; + + public ConfirmationPage(WOContext context) { + super(context); + } + + public Delegate delegate() { + return _delegate; + } + + public void setDelegate(Delegate value) { + _delegate = value; + } + + + public static ConfirmationPage create(WOContext context, Delegate delegate) { + assert delegate != null; + ConfirmationPage page = (ConfirmationPage) context.page().pageWithName(ConfirmationPage.class.getName()); + page.setDelegate(delegate); + return page; + } + +} \ No newline at end of file Deleted: trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/HostConfirmDeletePage.java =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/HostConfirmDeletePage.java 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/HostConfirmDeletePage.java 2009-03-04 17:04:21 UTC (rev 9001) @@ -1,59 +0,0 @@ -package com.webobjects.monitor.application; - -/* - \xA9 Copyright 2006- 2007 Apple Computer, Inc. All rights reserved. - - IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. (\xD2Apple\xD3) in consideration of your agreement to the following terms, and your use, installation, modification or redistribution of this Apple software constitutes acceptance of these terms. If you do not agree with these terms, please do not use, install, modify or redistribute this Apple software. - - In consideration of your agreement to abide by the following terms, and subject to these terms, Apple grants you a personal, non-exclusive license, under Apple\xD5s copyrights in this original Apple software (the \xD2Apple Software\xD3), to use, reproduce, modify and redistribute the Apple Software, with or without modifications, in source and/or binary forms; provided that if you redistribute the Apple Software in its entirety and without modifications, you must retain this notice and the following text and disclaimers in all such redistributions of the Apple Software. Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to endorse or promote products derived from the Apple Software without specific prior written permission from Apple. Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by Apple herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the Apple Software may be incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - */ -import com.webobjects.appserver.WOApplication; -import com.webobjects.appserver.WOComponent; -import com.webobjects.appserver.WOContext; -import com.webobjects.foundation.NSMutableArray; -import com.webobjects.monitor._private.MHost; - -public class HostConfirmDeletePage extends MonitorComponent { - - public HostConfirmDeletePage(WOContext aWocontext) { - super(aWocontext); - } - - /** - * serialVersionUID - */ - private static final long serialVersionUID = 84320272280038781L; - - public WOComponent deleteClicked() { - handler().startWriting(); - try { - siteConfig().removeHost_M(myHost()); - - // This is so we can still talk to it! - NSMutableArray tempHostArray = new NSMutableArray(siteConfig().hostArray()); - tempHostArray.addObject(myHost()); - - handler().sendRemoveHostToWotaskds(myHost(), tempHostArray); - } finally { - handler().endWriting(); - } - - return HostsPage.create(context()); - } - - public WOComponent cancelClicked() { - return HostsPage.create(context()); - } - - public static HostConfirmDeletePage create(WOContext context, MHost host) { - HostConfirmDeletePage page = (HostConfirmDeletePage) context.page().pageWithName(HostConfirmDeletePage.class.getName()); - page.setMyHost(host); - return page; - } - -} \ No newline at end of file Modified: trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/HostsPage.java =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/HostsPage.java 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/HostsPage.java 2009-03-04 17:04:21 UTC (rev 9001) @@ -28,6 +28,8 @@ import com.webobjects.appserver.WOResponse; import com.webobjects.foundation.NSArray; import com.webobjects.foundation.NSLog; +import com.webobjects.foundation.NSMutableArray; +import com.webobjects.monitor._private.MApplication; import com.webobjects.monitor._private.MHost; import com.webobjects.monitor._private.MObject; import com.webobjects.monitor._private.String_Extensions; @@ -123,7 +125,42 @@ } public WOComponent removeHostClicked() { - return HostConfirmDeletePage.create(context(), currentHost); + + final MHost host = currentHost; + + return ConfirmationPage.create(context(), new ConfirmationPage.Delegate() { + + public WOComponent cancel() { + return HostsPage.create(context()); + } + + public WOComponent confirm() { + handler().startWriting(); + try { + siteConfig().removeHost_M(host); + NSMutableArray tempHostArray = new NSMutableArray(siteConfig().hostArray()); + tempHostArray.addObject(host); + + handler().sendRemoveHostToWotaskds(host, tempHostArray); + } finally { + handler().endWriting(); + } + return HostsPage.create(context()); + } + + public String explaination() { + return "Selecting 'Yes' will shutdown any running instances of this host, and remove those instance configurations."; + } + + public int pageType() { + return HOST_PAGE; + } + + public String question() { + return "Are you sure you want to delete the host <I>" + host.name() + "</I>?"; + } + + }); } public WOComponent configureHostClicked() { Deleted: trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/InstConfirmDeletePage.java =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/InstConfirmDeletePage.java 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/InstConfirmDeletePage.java 2009-03-04 17:04:21 UTC (rev 9001) @@ -1,56 +0,0 @@ -package com.webobjects.monitor.application; - -/* - \xA9 Copyright 2006- 2007 Apple Computer, Inc. All rights reserved. - - IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. (\xD2Apple\xD3) in consideration of your agreement to the following terms, and your use, installation, modification or redistribution of this Apple software constitutes acceptance of these terms. If you do not agree with these terms, please do not use, install, modify or redistribute this Apple software. - - In consideration of your agreement to abide by the following terms, and subject to these terms, Apple grants you a personal, non-exclusive license, under Apple\xD5s copyrights in this original Apple software (the \xD2Apple Software\xD3), to use, reproduce, modify and redistribute the Apple Software, with or without modifications, in source and/or binary forms; provided that if you redistribute the Apple Software in its entirety and without modifications, you must retain this notice and the following text and disclaimers in all such redistributions of the Apple Software. Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to endorse or promote products derived from the Apple Software without specific prior written permission from Apple. Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by Apple herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the Apple Software may be incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - */ -import com.webobjects.appserver.WOApplication; -import com.webobjects.appserver.WOComponent; -import com.webobjects.appserver.WOContext; -import com.webobjects.foundation.NSArray; -import com.webobjects.monitor._private.MInstance; - -public class InstConfirmDeletePage extends MonitorComponent { - - public InstConfirmDeletePage(WOContext aWocontext) { - super(aWocontext); - } - - /** - * serialVersionUID - */ - private static final long serialVersionUID = -1784360231414606374L; - - public WOComponent deleteClicked() { - handler().startWriting(); - try { - siteConfig().removeInstance_M(myInstance()); - - if (siteConfig().hostArray().count() != 0) { - handler().sendRemoveInstancesToWotaskds(new NSArray(myInstance()), siteConfig().hostArray()); - } - } finally { - handler().endWriting(); - } - return AppDetailPage.create(context(), myInstance().application()); - } - - public WOComponent cancelClicked() { - return AppDetailPage.create(context(), myInstance().application()); - } - - public static InstConfirmDeletePage create(WOContext context, MInstance instance) { - InstConfirmDeletePage page = (InstConfirmDeletePage) context.page().pageWithName(InstConfirmDeletePage.class.getName()); - page.setMyInstance(instance); - return page; - } - -} \ No newline at end of file Deleted: trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/StopAllConfirmPage.java =================================================================== --- trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/StopAllConfirmPage.java 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Applications/JavaMonitor/Sources/com/webobjects/monitor/application/StopAllConfirmPage.java 2009-03-04 17:04:21 UTC (rev 9001) @@ -1,67 +0,0 @@ -package com.webobjects.monitor.application; - -/* - \xA9 Copyright 2006- 2007 Apple Computer, Inc. All rights reserved. - - IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. (\xD2Apple\xD3) in consideration of your agreement to the following terms, and your use, installation, modification or redistribution of this Apple software constitutes acceptance of these terms. If you do not agree with these terms, please do not use, install, modify or redistribute this Apple software. - - In consideration of your agreement to abide by the following terms, and subject to these terms, Apple grants you a personal, non-exclusive license, under Apple\xD5s copyrights in this original Apple software (the \xD2Apple Software\xD3), to use, reproduce, modify and redistribute the Apple Software, with or without modifications, in source and/or binary forms; provided that if you redistribute the Apple Software in its entirety and without modifications, you must retain this notice and the following text and disclaimers in all such redistributions of the Apple Software. Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to endorse or promote products derived from the Apple Software without specific prior written permission from Apple. Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by Apple herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the Apple Software may be incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - */ -import com.webobjects.appserver.WOApplication; -import com.webobjects.appserver.WOComponent; -import com.webobjects.appserver.WOContext; -import com.webobjects.foundation.NSArray; -import com.webobjects.monitor._private.MApplication; -import com.webobjects.monitor._private.MInstance; -import com.webobjects.monitor._private.MObject; - -public class StopAllConfirmPage extends MonitorComponent { - - public StopAllConfirmPage(WOContext aWocontext) { - super(aWocontext); - } - - /** - * serialVersionUID - */ - private static final long serialVersionUID = -2989385184645841941L; - - public WOComponent stopAllClicked() { - handler().startReading(); - try { - if (myApplication().hostArray().count() != 0) { - handler().sendStopInstancesToWotaskds(myApplication().instanceArray(), - myApplication().hostArray()); - } - - NSArray instancesArray = myApplication().instanceArray(); - for (int i = 0; i < instancesArray.count(); i++) { - MInstance anInst = (MInstance) instancesArray.objectAtIndex(i); - if (anInst.state != MObject.DEAD) { - anInst.state = MObject.STOPPING; - } - } - } finally { - handler().endReading(); - } - - return AppDetailPage.create(context(), myApplication()); - } - - public WOComponent cancelClicked() { - return AppDetailPage.create(context(), myApplication()); - } - - public static StopAllConfirmPage create(WOContext context, MApplication application) { - assert application != null; - StopAllConfirmPage page = (StopAllConfirmPage) context.page().pageWithName(StopAllConfirmPage.class.getName()); - page.setMyApplication(application); - return page; - } - -} \ No newline at end of file Modified: trunk/Wonder/Frameworks/Misc/JavaMonitorFramework/Sources/com/webobjects/monitor/_private/MSiteConfig.java =================================================================== --- trunk/Wonder/Frameworks/Misc/JavaMonitorFramework/Sources/com/webobjects/monitor/_private/MSiteConfig.java 2009-03-04 09:35:25 UTC (rev 9000) +++ trunk/Wonder/Frameworks/Misc/JavaMonitorFramework/Sources/com/webobjects/monitor/_private/MSiteConfig.java 2009-03-04 17:04:21 UTC (rev 9001) @@ -268,6 +268,12 @@ public void removeInstance_M(MInstance anInstance) { removeInstance_M(anInstance, true); } + public void removeInstances_M(MApplication application, NSArray<MInstance> instances) { + backup("removeInstances-" + application + "-" + instances.count()); + for (MInstance instance : instances) { + removeInstance_M(instance, false); + } + } private void removeInstance_M(MInstance anInstance, boolean doBackup) { if(doBackup) { backup("removeInstance-" + anInstance.displayName()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |