001 package org.springframework.richclient.command.support;
002
003 import org.springframework.richclient.application.support.WidgetViewDescriptor;
004
005 /**
006 * Widget command that shows a widget in a view
007 */
008 public class WidgetViewCommand extends AbstractWidgetCommand
009 {
010
011 protected WidgetViewDescriptor widgetViewDescriptor;
012
013 protected String widgetViewDescriptorId;
014
015 /**
016 * Shows the widget in the view
017 */
018 protected void doExecuteCommand()
019 {
020 if (this.widgetViewDescriptor == null)
021 this.widgetViewDescriptor = createWidgetViewDescriptor();
022
023 getApplicationWindow().getPage().showView(widgetViewDescriptor.getId());
024
025 }
026
027 public void setWidgetViewDescriptorId(String widgetViewDescriptorId)
028 {
029 this.widgetViewDescriptorId = widgetViewDescriptorId;
030 }
031
032 protected WidgetViewDescriptor createWidgetViewDescriptor()
033 {
034 if (this.widgetViewDescriptorId != null)
035 return (WidgetViewDescriptor)getApplicationContext().getBean(this.widgetViewDescriptorId);
036
037 return new WidgetViewDescriptor(getId(), getWidget());
038 }
039
040 @Override
041 public void setAuthorized(boolean authorized)
042 {
043 super.setAuthorized(authorized);
044 if ((this.widgetViewDescriptor != null) && !authorized)
045 if (this.widgetViewDescriptor.getId().equals(getApplicationWindow().getPage().getActiveComponent().getId()))
046 getApplicationWindow().getPage().showView(null);
047 }
048 }
049