/**
*
*/
package org.openflexo.wse.controller;
import java.util.logging.Level;
import javax.swing.ImageIcon;
import org.openflexo.foundation.FlexoModelObject;
import org.openflexo.foundation.dm.DMEntity;
import org.openflexo.foundation.dm.DMPackage;
import org.openflexo.foundation.dm.DMRepository;
import org.openflexo.foundation.rm.FlexoProject;
import org.openflexo.foundation.wkf.ws.ServiceInterface;
import org.openflexo.foundation.wkf.ws.ServiceMessageDefinition;
import org.openflexo.foundation.wkf.ws.ServiceOperation;
import org.openflexo.foundation.ws.ExternalWSFolder;
import org.openflexo.foundation.ws.FlexoWSLibrary;
import org.openflexo.foundation.ws.InternalWSFolder;
import org.openflexo.foundation.ws.WSPortTypeFolder;
import org.openflexo.foundation.ws.WSRepositoryFolder;
import org.openflexo.foundation.ws.WSService;
import org.openflexo.icon.WSEIconLibrary;
import org.openflexo.view.ModuleView;
import org.openflexo.view.controller.FlexoController;
import org.openflexo.view.controller.model.FlexoPerspective;
import org.openflexo.wse.view.WSEBrowserView;
import org.openflexo.wse.view.WSEDMEntityView;
import org.openflexo.wse.view.WSEDMPackageView;
import org.openflexo.wse.view.WSEDMRepositoryView;
import org.openflexo.wse.view.WSEExternalWSFolderView;
import org.openflexo.wse.view.WSEInternalWSFolderView;
import org.openflexo.wse.view.WSELibraryView;
import org.openflexo.wse.view.WSEMessageView;
import org.openflexo.wse.view.WSEPortTypeFolderView;
import org.openflexo.wse.view.WSEPortTypeView;
import org.openflexo.wse.view.WSERepositoryFolderView;
import org.openflexo.wse.view.WSEServiceOperationView;
import org.openflexo.wse.view.WSEServiceView;
public class WSEPerspective extends FlexoPerspective {
/**
* @param name
*/
public WSEPerspective(WSEController controller) {
super("webserviceeditor_perspective");
setTopLeftView(new WSEBrowserView(controller));
}
/**
* Overrides getIcon
*
* @see org.openflexo.view.controller.model.FlexoPerspective#getActiveIcon()
*/
@Override
public ImageIcon getActiveIcon() {
return WSEIconLibrary.WSE_WSEP_ACTIVE_ICON;
}
@Override
public FlexoModelObject getDefaultObject(FlexoModelObject proposedObject) {
if (hasModuleViewForObject(proposedObject)) {
return proposedObject;
}
return null;
}
@Override
public boolean hasModuleViewForObject(FlexoModelObject object) {
return true;
}
@Override
public ModuleView<? extends FlexoModelObject> createModuleViewForObject(FlexoModelObject object, FlexoController controller) {
if (object instanceof FlexoProject) {
return new WSELibraryView(((FlexoProject) object).getFlexoWSLibrary(), (WSEController) controller);
} else if (object instanceof FlexoWSLibrary) {
return new WSELibraryView((FlexoWSLibrary) object, (WSEController) controller);
} else if (object instanceof ExternalWSFolder) {
return new WSEExternalWSFolderView((ExternalWSFolder) object, (WSEController) controller);
} else if (object instanceof InternalWSFolder) {
return new WSEInternalWSFolderView((InternalWSFolder) object, (WSEController) controller);
} else if (object instanceof WSService) {
return new WSEServiceView((WSService) object, (WSEController) controller);
} else if (object instanceof WSPortTypeFolder) {
return new WSEPortTypeFolderView((WSPortTypeFolder) object, (WSEController) controller);
} else if (object instanceof WSRepositoryFolder) {
return new WSERepositoryFolderView((WSRepositoryFolder) object, (WSEController) controller);
} else if (object instanceof DMPackage) {
return new WSEDMPackageView((DMPackage) object, (WSEController) controller);
} else if (object instanceof DMRepository) {
return new WSEDMRepositoryView((DMRepository) object, (WSEController) controller);
} else if (object instanceof DMEntity) {
return new WSEDMEntityView((DMEntity) object, (WSEController) controller);
} else if (object instanceof ServiceInterface) {
return new WSEPortTypeView((ServiceInterface) object, (WSEController) controller);
} else if (object instanceof ServiceOperation) {
return new WSEServiceOperationView((ServiceOperation) object, (WSEController) controller);
} else if (object instanceof ServiceMessageDefinition) {
return new WSEMessageView((ServiceMessageDefinition) object, (WSEController) controller);
} else {
if (WSEController.logger.isLoggable(Level.FINE)) {
WSEController.logger.fine("Cannot create view for a " + object.getClass().getName());
}
return null;
// return new WSEViewExample(object, this);
}
}
}