/*
* Created on Jul 18, 2006
*/
package com.processpuzzle.artifact_management.control;
import java.security.InvalidParameterException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.processpuzzle.application.control.control.CommandDispatcher;
import com.processpuzzle.artifact.domain.ArtifactView;
public abstract class ArtifactViewCommand extends ArtifactCommand {
public static final String METHOD_PARAMETER_NAME = "method";
public static final String ID_PARAMETER_NAME = "id";
public static String ARTIFACTVIEW_IDENTIFIERNAME = "viewName";
public static String HELPER_NAME = "artifactView";
private Logger log = LoggerFactory.getLogger( ArtifactViewCommand.class );
private String method;
private String id;
protected String artifactViewIdentifier = "";
protected ArtifactView<?> subjectArtifactView;
public void init( CommandDispatcher dispatcher ) {
super.init( dispatcher );
retrieveArtifactView();
subjectArtifactView.setCodeBase( dispatcher.getRequest().getRequestURL().toString() );
subjectArtifactView.initializeView();
subjectArtifactView.setLoggedInUser( loggedInUser );
performAction();
log.debug( subjectArtifactView.getLoggedInUser().getUserName() + " opening " + subjectArtifactView.getName() );
dispatcher.getRequest().setAttribute( HELPER_NAME, subjectArtifactView );
}
protected void retrieveRequestParameters( CommandDispatcher dispatcher ) {
method = dispatcher.getProperties().getProperty( METHOD_PARAMETER_NAME );
id = dispatcher.getProperties().getProperty( ID_PARAMETER_NAME );
artifactViewIdentifier = dispatcher.getProperties().getProperty( ARTIFACTVIEW_IDENTIFIERNAME );
if( artifactViewIdentifier == null )
throw new InvalidParameterException( "The parameter '" + ARTIFACTVIEW_IDENTIFIERNAME + "' is required!" );
}
protected void retrieveArtifactView() {
subjectArtifactView = (ArtifactView<?>) subjectArtifact.getView( artifactViewIdentifier );
if( subjectArtifactView == null )
throw new InvalidParameterException( "Missing view or wrong view name!" );
}
public void performAction() {
if( method != null && method.equals( "del" ) ){
System.out.println( "Method: " + method );
System.out.println( "Id: " + id );
subjectArtifactView.delete( id );
// to resolve bug
retrieveArtifactView();
}
}
protected ArtifactView<?> getSubjectArtifactView() {
return subjectArtifactView;
}
}