package org.webcat.core.objectquery;
import org.webcat.core.ObjectQuery;
import org.webcat.core.WCComponent;
import org.webcat.ui.generators.JavascriptGenerator;
import org.webcat.ui.util.ComponentIDGenerator;
import com.webobjects.appserver.WOActionResults;
import com.webobjects.appserver.WOContext;
import com.webobjects.appserver.WOResponse;
import com.webobjects.foundation.NSArray;
public class ObjectQueryBuilder extends WCComponent
{
//~ Constructors ..........................................................
// ----------------------------------------------------------
public ObjectQueryBuilder(WOContext context)
{
super(context);
}
//~ KVC attributes (must be public) .......................................
public ComponentIDGenerator idFor;
public ObjectQuerySurrogate surrogate;
public String objectType;
public String description;
public NSArray<QueryAssistantDescriptor> queryAssistants;
public QueryAssistantDescriptor aQueryAssistant;
public NSArray<ObjectQuery> savedQueries;
public ObjectQuery aSavedQuery;
public ObjectQuery selectedSavedQuery;
//~ Methods ...............................................................
// ----------------------------------------------------------
public void appendToResponse(WOResponse response, WOContext context)
{
idFor = new ComponentIDGenerator(this);
queryAssistants =
QueryAssistantManager.getInstance().assistantsForEntity(objectType);
savedQueries = ObjectQuery.savedQueriesForObjectTypeAndUser(
localContext(), objectType, user());
super.appendToResponse(response, context);
}
// ----------------------------------------------------------
public String linkPartOfQueryAssistantDescription()
{
String desc = aQueryAssistant.description();
int pipe = desc.indexOf('|');
if (pipe >= 0)
{
return desc.substring(0, pipe);
}
else
{
return desc;
}
}
// ----------------------------------------------------------
public String nonLinkPartOfQueryAssistantDescription()
{
String desc = aQueryAssistant.description();
int pipe = desc.indexOf('|');
if (pipe >= 0)
{
return desc.substring(pipe + 1);
}
else
{
return desc;
}
}
// ----------------------------------------------------------
public WOActionResults chooseQueryAssistant()
{
surrogate.switchToQueryAssistant(aQueryAssistant);
return new JavascriptGenerator()
.refresh(idFor.get("queryAssistantContainer"));
}
// ----------------------------------------------------------
public WOActionResults revertEditing()
{
surrogate.switchToAssistantPicker();
return new JavascriptGenerator()
.refresh(idFor.get("queryAssistantContainer"));
}
// ----------------------------------------------------------
public WOActionResults useSavedQuery()
{
surrogate.switchToSavedQuery(selectedSavedQuery);
return new JavascriptGenerator()
.refresh(idFor.get("queryAssistantContainer"));
}
}