package com.vistatec.ocelot.plugins;
import java.awt.Window;
import java.io.File;
import java.util.List;
import com.vistatec.ocelot.its.model.LanguageQualityIssue;
import com.vistatec.ocelot.plugins.exception.AuditProfileException;
import com.vistatec.ocelot.plugins.exception.NoAuditProfileLoadedException;
import com.vistatec.ocelot.plugins.exception.QualityEvaluationException;
import com.vistatec.ocelot.segment.model.OcelotSegment;
public interface QualityPlugin extends Plugin {
public void loadAuditProfile(File file) throws AuditProfileException,
QualityEvaluationException;
public File createNewAuditProfile(Window ownerWindow)
throws AuditProfileException;;
public File createAuditProfileFromExistingOne(File file, Window ownerWindow)
throws AuditProfileException;;
public void viewAuditProfileProps(Window ownerWindow)
throws AuditProfileException;
public boolean evaluateQualityScore(Window owner)
throws NoAuditProfileLoadedException, QualityEvaluationException;
public void documentOpened(int sampleSize,
List<LanguageQualityIssue> lqiList, List<OcelotSegment> segments)
throws QualityEvaluationException;
public void enableEvaluationOnTheFly(boolean enable)
throws NoAuditProfileLoadedException, QualityEvaluationException;
public void lqiCreated(LanguageQualityIssue lqi)
throws QualityEvaluationException;
public void lqiEdited(LanguageQualityIssue oldLqi,
LanguageQualityIssue newLqi) throws QualityEvaluationException;
public void lqiRemoved(LanguageQualityIssue lqi)
throws QualityEvaluationException;
// public boolean enableEvaluationOnTheFly(int sampleSize,
// List<LanguageQualityIssue> lqiList) throws NoAuditProfileLoadedException;
//
// public void disableEvaluationOnTheFly();
// public void setEvalOnTheFlyEnabled(boolean enabled) throws
// NoAuditProfileLoadedException;
//
// public boolean initEvaluationOnTheFly(int sampleSize,
// List<LanguageQualityIssue> lqiList);
//
// public boolean lqiAdded(LanguageQualityIssue lqi);
//
// public boolean lqiEdited(LanguageQualityIssue oldLqi,
// LanguageQualityIssue newLqi);
//
public void displayOnTheFlyResult(Window owner);
}