Interfaces¶
Firmador libre posee varias interfaces por las que puede ser llamado, todas las interfaces deben heredar de GUIInterface el cual posee los siguientes métodos:
Métodos de inicialización¶
void loadGUI(): Es el método llamado inmediatamente después de que el programa inicia.void setArgs(String[] args): Pasa a la interfaz los parámetros con los que firmador libre fue llamado.void setPluginManager(PluginManager pluginManager): Asigna el plugin manager para uso de la interfaz.void configurePluginManager(): Registra el plugin manager para que la interfaz pueda proporcionarle eventos u obtener eventos del plugin.void setSmartCardDetector(SmartCardDetector detector): Asigna el detector de tarjetas inteligentes para usarse en la interfaz.
Métodos de mensajes y diálogos¶
void showError(Throwable error): Se proporciona un mensaje de error para ser mostrado, almacenado o lo que la interfaz quiera hacer con él, estos mensajes se generan durante el flujo de firmado y no tienen un orden fijo.void showMessage(String message): Se proporciona un mensaje para ser mostrado al usuario o realizar lo que la interfaz disponga.void showErrorAlert(String title, String message): Muestra un diálogo de error con un título y mensaje específicos.
Métodos de carga de documentos¶
List<Document> addDocuments(File[] files): Se proporciona un array de archivos para ser cargados y retorna la lista de documentos creados.void loadDocuments(List<Document> documents, boolean doPreview): Carga una lista de documentos previamente creados, con opción de generar vista previa.List<Document> addDocumentsSynchronous(File[] files): Carga documentos de forma síncrona (bloqueante) y retorna la lista de documentos.void addDirectories(File[] files): Se utiliza para cargar un array de directorios.void loadRemoteDocument(String fileName): Se utiliza para cargar un documento remoto.
Métodos de interacción con el usuario¶
String getDocumentToSign(): Retorna la ruta completa del documento a firmar.String getPathToSave(String extension): Retorna la ruta completa donde se debe guardar el documento.String getPathToSaveExtended(String extension): Retorna la ruta de guardado cuando el documento solo se extendió, cuando se firma el documento se utilizagetPathToSave.CardSignInfo getPin(): Retorna la información del PIN de la tarjeta para usarse a la hora de firmar.
Métodos de control de flujo¶
void displayFunctionality(String functionality): En el caso deSwing Interfacepermite cambiarse de TAB según el nombre proporcionado.void nextStep(String msg): Permite indicar un mensaje para el paso que se está dando en el flujo de firmado.Settings getCurrentSettings(): Obtiene los settings que están seleccionados actualmente en la interfaz (no confundir con los settings de toda la aplicación ya que usan la misma clase Settings).
Métodos de operaciones de documentos¶
void signDocument(Document document): Encola un documento para ser firmado con el Agendador de firmado.void extendDocument(): Extiende el documento ya firmado.void doPreview(Document document): Encola la generación de previsualización de un documento en el Agendador de previsualizaciones.
Eventos de documentos individuales¶
Estos métodos son llamados cuando se completa una operación sobre un documento específico:
void previewDone(Document document): Es llamada cuando se termina de cargar la previsualización de un documento.void validateDone(Document document): Es llamada cuando se termina de validar un documento.void signDone(Document document): Es llamada cuando se termina de firmar un documento.void extendsDone(Document document): Es llamada cuando se termina de extender un documento.
Eventos de operaciones masivas¶
Estos métodos son llamados cuando se completan operaciones sobre todos los documentos encolados:
void validateAllDone(): Es llamada cuando se termina de validar todos los documentos encolados.void signAllDone(): Es llamada cuando se termina de firmar todos los documentos encolados.void previewAllDone(): Es llamada cuando se termina de generar previsualizaciones de todos los documentos encolados.void clearDone(): Es llamada cuando se termina de eliminar un documento.
Implementaciones disponibles¶
Existen las siguientes implementaciones de esta interfaz:
GUIArgs: Interfaz de línea de comandos con argumentos
GUIShell: Interfaz de consola interactiva
GUISwing: Interfaz gráfica usando Java Swing
Seleccionando la interfaz¶
GUISelector es la clase encargada de seleccionar qué interfaz se debe utilizar, para ello proporciona el método GUIInterface getInterface(String[] args) de forma que pueda ser llamada por el firmador.
Se puede especificar la interfaz a utilizar mediante los comandos:
java -jar firmador.jar -dswing
Las posibles opciones para la línea de comandos son args, shell y swing siendo la última la interfaz por defecto.