Package hirondelle.fish.translate.unknown

Source Code of hirondelle.fish.translate.unknown.UnknownBaseTextRecorder

package hirondelle.fish.translate.unknown;

import hirondelle.web4j.model.AppException;
import hirondelle.web4j.action.ActionImpl;
import hirondelle.web4j.request.RequestParser;
import hirondelle.web4j.request.RequestParameter;
import hirondelle.web4j.action.Operation;
import hirondelle.web4j.config.TranslatorImpl;
import hirondelle.web4j.action.ResponsePage;
import hirondelle.web4j.ui.translate.Translator;
import hirondelle.fish.translate.basetext.BaseText;

/**
Toggle the recording of unknown {@link BaseText}.
<P>See {@link Translator} for a definition of <tt>BaseText</tt>.
<P>When a particular text snippet is first encountered by various translation tools,
it is categorized as "unknown" <tt>BaseText</tt>. Such unknown items can be
collected by calling this <tt>Action</tt>, which will start to 'record' such items
as they are found. Later, the items are evaluated one by one, to determine if they
should be treated as translatable items.
<P>Operations performed :{@link TranslatorImpl#startRecordingUnknowns()} and
{@link TranslatorImpl#stopRecordingUnknowns()}.
@view view.jsp
*/
public final class UnknownBaseTextRecorder extends ActionImpl {

  /** Constructor.  */
  public UnknownBaseTextRecorder(RequestParser aRequestParser){
    super(UnknownBaseTextEdit.REDIRECT_TO_LISTING, aRequestParser);
  }
 
  /**
   {@link RequestParameter} defining the operations supported by this template.
  
   <P>The underlying <tt>request</tt> must contain a parameter
   named <tt>'Operation'</tt>, whose single value can be parsed successfully
   by {@link Operation#valueOf} into one of the following supported operations :
   <ul>
   <li>{@link Operation#Start}
   <li>{@link Operation#Stop}
   </ul>
  */
  public static final RequestParameter SupportedOperation = RequestParameter.withRegexCheck(
    "Operation", "(" + Operation.Start + "|" + Operation.Stop + ")"
  );
  
  /**
   Toggle the recording of unknown <tt>BaseText</tt>, according to the value of
   {@link #SupportedOperation}.
  
   <P>Uses {@link TranslatorImpl#startRecordingUnknowns()} and
   {@link TranslatorImpl#stopRecordingUnknowns()}.
  */
  public ResponsePage execute() throws AppException {
    Operation operation = Operation.valueOf(getParamUnsafe(SupportedOperation));
    if ( Operation.Start == operation ) {
      if( ! TranslatorImpl.isRecording() ){
        TranslatorImpl.read();//refreshes the in-memory cache
        TranslatorImpl.startRecordingUnknowns();
        addMessage("Started recording.");
      }
      else {
        addError("Already recording Unknown Base Text.");
      }
    }
    else if( Operation.Stop == operation ){
      if( TranslatorImpl.isRecording() ) {
        TranslatorImpl.stopRecordingUnknowns();
        addMessage("Stopped recording.");
      }
      else {
        addError("Not recording Unknown Base Text.");
      }
    }
    return getResponsePage();
  }
}
TOP

Related Classes of hirondelle.fish.translate.unknown.UnknownBaseTextRecorder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.