Espacio de trabajo

Descripción

Desde la versión 3, AFRYCA hace uso de su propio directorio o espacio de trabajo, el cual comúnmente se hace referencia por su nombre en inglés, workspace.

En su versión actual, el workspace soporte el almacenamiento de diferentes tipos de elementos tales como problemas de toma de decisión en grupo o GDMPs (Group Decision Making Problem), configuraciones de modelos de consenso, actitudes de comportamientos, snippets, repositorios, funciones, módulos y enlaces a módulos.

Además, el workspace soporta la inclusión de elementos precargados o nativos, los cuales son archivos integrados en las bibliotecas de la aplicación y sobre los que el usuario no puede realizar modificaciones. Estos elementos permiten desplegar AFRYCA con un conjunto definido de elementos que pueden ser de utilidad para el usuario.

Features

La funcionalidad se proporciona desde las siguientes features:

afryca.workspace.feature

Plug-ins para la funcionalidad básica del workspace

  • Plug-ins incluidos:
    • afryca.workspace
    • afryca.workspace.service.events
  • Features incluidas:
    • afryca.consensusmodel.feature
    • afryca.gdmp.feature

afryca.workspace.gui.feature

Plug-ins para la funcionalidad gráfica del workspace

  • Plug-ins incluidos:
    • afryca.workspace.gui
  • Features incluidas:
    • afryca.ase.gui.feature
    • afryca.behavior.gui.feature
    • afryca.consensusmodel.gui.feature
    • afryca.gdmp.gui.feature
    • afryca.workspace.feature

Plug-ins

Los plug-ins desarrollados de forma específica para proveer su funcionalidad son los siguientes:

afryca.workspace

Funcionalidad básica del workspace

  • Dependencias:
    • afryca.workspace.service.events
    • afryca.ase
    • afryca.gdmp
    • afryca.behavior
    • afryca.consensusmodel
    • org.eclipse.core.runtime
    • org.eclipse.core.commands
    • org.eclipse.e4.core.di
    • org.eclipse.e4.core.di.extensions
    • org.eclipse.e4.core.services
    • org.eclipse.e4.core.contexts
    • org.eclipse.e4.core.commands
    • org.eclipse.e4.ui.workbench
    • org.eclipse.e4.ui.model.workbench
    • org.apache.commons.io

afryca.workspace.service.events

Eventos del workspace

  • Dependencias: No tiene.

afryca.workspace.gui

Funcionalidad gráfica del workspace

  • Dependencias:
    • afryca.workspace
    • afryca.ase.gui
    • afryca.gdmp.gui
    • afryca.behavior.gui
    • afryca.consensusmodel.gui
    • org.eclipse.wb.swt
    • org.eclipse.core.runtime
    • org.eclipse.e4.ui.di
    • org.eclipse.e4.core.di
    • org.eclipse.e4.core.di.extensions
    • org.eclipse.e4.core.services
    • org.eclipse.e4.core.contexts
    • org.eclipse.e4.core.commands
    • org.eclipse.e4.ui.services
    • org.eclipse.e4.ui.workbench
    • org.eclipse.e4.ui.model.workbench
    • org.eclipse.jface
    • org.eclipse.core.databinding
    • org.eclipse.jface.databinding
    • org.eclipse.core.databinding.beans
    • org.eclipse.core.databinding.property

Estructura

La utilidad de los diferentes paquetes y clases que conforman los plug-ins es la siguiente:

afryca.workspace

  • afryca.workspace
    • Simulation: Modelo para la representación del workspace.
  • afryca.workspace.command
    • CloneGDMP: Controlador para la clonación de un GDMP en el workspace.
    • ImportGDMP: Controlador para la importación de un GDMP en el workspace.
    • NewFuncion: Controlador para la creación de una nueva función ASE en el workspace.
    • NewGDMP: Controlador para la creación de un nuevo GDMP en el workspace.
    • NewModule: Controlador para la creación de un nuevo módulo ASE en el workspace.
    • NewModuleBinding: Controlador para la creación de un nuevo enlace a módulo ASE en el workspace.
    • NewRepository: Controlador para la creación de un nuevo repositorio ASE en el workspace.
    • NewSnippet: Controlador para la creación de un nuevo snippet ASE en el workspace.
    • RemoveAttitude: Controlador para la eliminación de una actitud del workspace.
    • RemoveConfiguration: Controlador para la eliminación de una configuración del workspace.
    • RemoveFunction: Controlador para la eliminación de una función ASE del workspace.
    • RemoveGDMP: Controlador para la eliminación de un GDMP del workspace.
    • RemoveModule: Controlador para la eliminación de un módulo ASE del workspace.
    • RemoveModuleBinding: Controlador para la eliminación de un enlace a módulo ASE del workspace.
    • RemoveRepository: Controlador para la eliminación de un repositorio ASE del workspace.
    • RemoveSnippet: Controlador para la eliminación de un snippet ASE del workspace.
  • afryca.workspace.definition
    • ​EPreloadedNature: Enumerado de los diferentes tipos de elementos nativos.
    • Preloaded: Definición de elementos del punto de extensión de elementos precargados. 
  • afryca.workspace.l10n: Mensajes de localización en diferentes idiomas.
  • afryca.workspace.preferences
    • PreferenceConstants: Constantes usadas para las preferencias establecidas en el archivo 'preferences.ini'.
  • afryca.workspace.service
    • IWorkspace: Interfaz del servicio Workspace.
  • afryca.workspace.service.provider
    • WorkspaceServiceContextFunction: Función contextual empleada para instanciar el servicio Workspace cuando se solicita su inyección.
    • WorkspaceServiceProvider: Proveedor del servicio Workspace.

afryca.workspace.service.events

  • afryca.workspace.service.events
    • IWorkspaceServiceEvents: Definición de eventos lanzados por el servicio Workspace a través del broker de E4.

afryca.workspace.gui

  • afryca.workspace.gui.addon
    • ToolItemVisibilityAddon: Add-on para la gestión de la visibilidad de los toolitems en función de la perspectiva seleccionada.
  • afryca.workspace.gui.command
    • CloneGDMP: Controlador para clonar un GDMP en el workspace solicitando su nombre.
    • EditFunction: Controlador para editar una función ASE del workspace.
    • EditModule: Controlador para editar un módulo ASE del workspace.
    • EditModuleBinding: Controlador para editar un enlace a módulo ASE del workspace.
    • EditRepository: Controlador para editar un repositorio ASE del workspace.
    • EditSnippet: Controlador para editar un snippet ASE del workspace.
    • ImportGDMP: Controlador para importar un GDMP en el workspace solicitando su nombre.
    • ModifyWorkspacePreferences: Controlador para modificar las preferencias del workspace.
    • NewFunction: Controlador para crear una nueva función ASE en el workspace solicitando sus valores.
    • NewGDMP: Controlador para crear un nuevo GDMP en el workspace empleando el asistente de GDMP.
    • NewModule: Controlador para crear un nuevo módulo ASE en el workspace solicitando sus valores.
    • NewModuleBinding: Controlador para crear un nuevo enlace a módulo ASE en el workspace solicitando sus valores.
    • NewRepository: Controlador para crear un nuevo repositorio ASE en el workspace solicitando sus valores.
    • RemoveAttitude: Controlador para eliminar una actitud del workspace solicitando confirmación.
    • RemoveConfiguration: Controlador para eliminar una configuración del workspace solicitando confirmación.
    • RemoveFunction: Controlador para eliminar una función ASE del workspace solicitando confirmación.
    • RemoveGDMP: Controlador para eliminar un GDMP del workspace solicitando confirmación.
    • RemoveModule: Controlador para eliminar un módulo ASE del workspace solicitando confirmación.
    • RemoveModuleBinding: Controlador para eliminar un enlace a módulo ASE del workspace solicitando confirmación.
    • RemoveRepository: Controlador para eliminar un repositorio ASE del workspace solicitando confirmación.
    • RemoveSnippet: Controlador para eliminar un snippet ASE del workspace solicitando confirmación.
    • RequestAttitudeName: Controlador para solicitar el nombre de una actitud.
    • RequestConfigurationName: Controlador para solicitar el nombre de una configuración.
    • RequestFunctionFileName: Controlador para solicitar el nombre de archivo de una función ASE.
    • RequestGDMPName: Controlador para solicitar el nombre de un GDMP.
    • RequestModuleBindingFileName: Controlador para solicitar el nombre de un enlace a módulo ASE.
    • RequestRepositoryFileName: Controlador para solicitar el nombre de un repositorio ASE.
    • RequestSnippetFileName: Controlador para solicitar el nombre de un snippet ASE.
    • RestoreAttitude: Controlador para restaurar una actitud.
    • RestoreConfiguration: Controlador para restaurar una configuración.
    • SaveAsSnippet: Controlador para guardar un fragmento de código como un snippet ASE.
    • SaveAttitude: Controlador para guardar una actitud solicitando su nombre o confirmación para sobrescribir una actitud existente.
    • SaveConfiguration: Controlador para guardar una configuración solicitando su nombre o confirmación para sobrescribir una configuración existente.
  • afryca.workspace.gui.dialog
    • WorkspacePreferencesDialog: Diálogo para la modificación de las preferencias del workspace.
  • afryca.workspace.gui.icons: Rutas localizadas a los iconos usados en diferentes idiomas.
  • afryca.workspace.gui.l10n: Mensajes de localización en diferentes idiomas.
  • afryca.workspace.gui.part
    • WorkspaceAttitudesPart: Parte para la gestión de las actitudes del workspace.
    • WorkspaceConfigurationsPart: Parte para la gestión de las configuraciones del workspace.
    • WorkspaceFunctionsPart: Parte para la gestión de las funciones ASE del workspace.
    • WorkspaceProblemsPart: Parte para la gestión de los GDMPs del workspace.
    • WorkspaceSnippetsPart: Para para la gestión de los snippets ASE del workspace.
  • afryca.workspace.gui.part.provider
    • GDMPColumnLabelProvider: Proveedor de etiqueta de GDMP reducido.
    • GDMPOwnerDrawLabelProvider: Proveedor de etiqueta de GDMP ampliado.
  • afryca.workspace.gui.preferences
    • PreferenceConstants: Constantes usadas para las preferencias establecidas en el archivo 'preferences.ini'.

Add-ons

La función de los add-ons proporcionados por los plug-ins se indica seguidamente:

afryca.workspace.gui.addon.ToolItemVisibilityAddon

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.addon.ToolItemVisibilityAddon. Registra los cambios de perspectiva para mostrar únicamente en la toolbar de la aplicación los comandos del workspace que pueden ser de utilidad para el usuario en cada momento.

Puntos de extensión

Los puntos de extensión ofrecidos por los plug-ins se describen a continuación:

afryca.workspace.preloaded

El plug-in afryca.workspace define el punto de extensión afryca.preloaded con el esquema definido en el archivo schema/afryca.preloaded.exsd. El punto de extensión permite definir elementos nativos que serán precargados al ejecutar AFRYCA.

  • Definición:
    • Extensión
      • (1 - *) Preloaded.
    • Preloaded (asociado a afryca.workspace.definition.Preloaded)
      • element: Elemento a precargar.
      • nature: Naturaleza del elemento a precargar.

Servicio

El plug-in afryca.workspace define un servicio declarativo OSGi para el workspace. El servicio se define en el archivo OSGI-INF/workspace_service_context_function.xml y hace uso de una función contextual eclipse, la cual realiza una instanciación de la clase afryca.workspace.service.provider.WorkspaceServiceContextFunction cuando se solicita la inyección del servicio cuya interfaz define afryca.workspace.service.IWorkspaceService.

  • Interfaz del servicio:
    • getWorkspace() : Workspace // Obtención del workspace.
    • getFolder() : String // Obtención del directorio del workspace.
    • writableWorkspace() : boolean // Información de si el workspace cuenta con permisos de escritura.
    • listWorkspaceGDMPs() : List<GDMP> // Obtención de la lista de GDMPs en el workspace.
    • listWorkspaceGDMPFiles() : List<String> // Obtención de los nombres de archivos de los GDMPs en el workspace.
    • removeGDMP(GDMP) : boolean // Eliminación de GDMP del workspace.
    • cloneGDMP(GDMP, String) : boolean // Clonación del GDMP con el nombre indicado.
    • importGDMP(GDMP, String) : boolean // Importación del GDMP en el nombre indicado.
    • newGDMP(GDMP) : boolean // Creación de GDMP.
    • listWorkspaceConfigurations(String) : List<Configuration> // Obtención de la lista configuraciones para un modelo de consenso dado su identificador.
    • listWorkspaceConfigurationsFiles() : List<String> // Obtención de los nombres de archivos de configuraciones en el workspace.
    • selectedConfigurationHasChanges() : boolean // Información de si la configuración seleccionada tiene cambios.
    • restoreSelectedConfiguration() : boolean // Restauración de la configuración seleccionada.
    • selectedConfigurationCanBeRecorded() : boolean // Información de si la configuración seleccionada puede ser almacenada.
    • recordSelectedConfigurationChanges() : boolean // Almacenamiento de los cambios de la configuración seleccionada.
    • removeConfiguration(Configuration) : boolean // Eliminar una configuración.
    • cloneConfiguration(Configuration, String) : boolean // Clonar la configuración con el nombre indicado.
    • importConfiguration(Configuration, String) : boolean // Importar la configuración con el nombre indicado.
    • newConfiguration(Configuration) : boolean // Creación de una configuración.
    • listWorkspaceAttitudes(String) : List<Attitude> // Obtención de la lista de actitudes para un comportamiento dado su identificador.
    • listWorkspaceAttitudesFiles() : List<String> // Obtención de los nombres de archivos de actitudes en el workspace.
    • selectedAttitudeHasChanges() : boolean // Información de si la actitud seleccionada tiene cambios.
    • restoreSelectedAttitude() : boolean // Restauración de la actitud seleccionada.
    • selectedAttitudeCanBeRecorded() : boolean // Información de si la actitud seleccionada puede ser almacenada.
    • restoreSelectedAttitude() : boolean // Restauración de la actitud seleccionada.
    • selectedAttitudeCanBeRecorded() // boolean // Información de si la actitud seleccionada puede ser almacenada.
    • recordSelectedAttitudeChanges() : boolean // Almacenamiento de los cambios de la actitud seleccionada.
    • removeAtritude(Attitude) : boolean // Eliminar una actitud.
    • cloneAttitude(Attitude, String) : boolean // Clonar la actitud con el nombre indicado.
    • importAttitude(Attitude, String) : boolean // Importar la actitud con el nombre indicado.
    • newAttitude(Attitude) : boolean // Creación de una actitud.
    • listWorkspaceRepositories() : List<Repository> // Obtención de la lista de repositorios en el workspace.
    • listWorkspaceRepositoryFiles() : List<String> // Obtención de los nombres de archivos de repositorios en el workspace.
    • removeRepository(Repository) : boolean // Eliminación de un repositorio.
    • newRepository(Repository) : boolean // Creación de un repositorio.
    • listWorkspaceSnippets() : List<Snippet> // Obtención de la lista de snippets en el workspace.
    • listWorkspaceSnippets(String) : List<Snippet> // Obtención de la lista de snippets de un repositorio.
    • listWorkspaceSnippetFiles() : List<String> // Obtención de los nombres de archivos de snippets en el workspace.
    • removeSnippet(Snippet) : boolean // Eliminación de un snippet.
    • newSnippet(Snippet) : boolean // Creación de un snippet.
    • listWorkspaceModules() : List<Module> // Obtención de la lista de módulos en el workspace.
    • listWorkspaceModuleFiles() : List<String> // Obtención de los nombres de archivos de módulos en el workspace.
    • removeModule(Module) : boolean // Eliminación de un módulo.
    • newModule(Module) : boolean // Creación de un módulo.
    • listWorkspaceFunctions() : List<Function> // Obtención de la lista de funciones en el workspace.
    • listWorkspaceFunctions(String) : List<Function> // Obtención de la lista de funciones de un módulo.
    • listWorkspaceFunctionFiles() : List<String> // Obtención de los nombres de archivos de funciones en el workspace.
    • removeFunction(Function) : boolean // Eliminación de una función.
    • newFunction(Function) : boolean // Creación de una función.
    • listWorkspaceModuleBindings() : List<ModuleBinding> // Obtención de la lista de enlaces a módulos en el workspace.
    • listWorkspaceModuleBindings(String) : List<ModuleBinding> // Obtención de la lista de enlaces a módulos de un módulo.
    • listWorkspaceModuleBindingsFiles() : List<String> // Obtención de los nombres de archivos de enlaces a módulos en el workspace.
    • removeModuleBinding(ModuleBinding) : boolean // Eliminación de un enlace a módulo.
    • newModuleBinding(ModuleBinding) // Creación de un enlace a módulo.

Broker

El servicio hace uso del broker de E4 para notificar de diversa información de interés.

  • Topics:
    • WORKSPACE // Raíz.
    • WORKSPACE/CHANGED // Cambio de workspace.
    • WORKSPACE/GDMP/NEW // Nuevo GDMP.
    • WORKSPACE/GDMP/DELETED // GDMP eliminado.
    • WORKSPACE/GDMP/UPDATED // GDMP actualizado.
    • WORKSPACE/CONFIGURATION/NEW // Nueva configuración.
    • WORKSPACE/CONFIGURATION/DELETED // Configuración eliminada.
    • WORKSPACE/CONFIGURATION/UPDATED // Configuración actualizada.
    • WORKSPACE/ATTITUDE/NEW // Nueva actitud.
    • WORKSPACE/ATTITUDE/DELETED // Actitud eliminada.
    • WORKSPACE/ATTITUDE/UPDATED // Actitud actualizada.
    • WORKSPACE/REPOSITORY/NEW // Nuevo repositorio.
    • WORKSPACE/REPOSITORY/DELETED // Repositorio eliminado.
    • WORKSPACE/REPOSITORY/UPDATED // Repositorio actualizado.
    • WORKSPACE/SNIPPET/NEW // Nuevo snippet.
    • WORKSPACE/SNIPPET/DELETED // Snippet eliminado.
    • WORKSPACE/SNIPPET/UPDATED // Snippet actualizado.
    • WORKSPACE/MODULE/NEW // Nuevo módulo.
    • WORKSPACE/MODULE/DELETED // Módulo eliminado.
    • WORKSPACE/MODULE/UPDATED // Módulo actualizado.
    • WORKSPACE/FUNCTION/NEW // Nueva función.
    • WORKSPACE/FUNCTION/DELETED // Función eliminada.
    • WORKSPACE/FUNCTION/UPDATED // Función actualizada.
    • WORKSPACE/MODULE_BINDING/NEW // Nuevo enlace a módulo.
    • WORKSPACE/MODULE_BINDING/DELETED // Enlace a módulo eliminado.
    • WORKSPACE/MODULE_BINDING/UPDATED // Enlace a módulo actualizado.

Comandos

Los comandos añadidos por los plug-ins son los siguientes:

afryca.workspace.command.import_gdmp

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.ImportGDMP. Importa un GDMP en el workspace.

afryca.workspace.command.clone_gdmp

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.CloneGDMP. Clona un GDMP en el workspace.

afryca.workspace.command.new_gdmp

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.NewGDMP. Crea un GDMP en el workspace.

afryca.workspace.command.remove_gdmp

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.RemoveGDMP. Elimina un GDMP del workspace.

afryca.workspace.command.remove_configuration

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.RemoveConfiguration. Elimina una configuración del workspace.

afryca.workspace.command.remove_attitude

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.RemoveAttitude. Elimina una actitud del workspace.

afryca.workspace.command.new_repository

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.NewRepository. Crea un repositorio en el workspace.

afryca.workspace.command.remove_repository

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.RemoveRepository. Elimina un repositorio del workspace.

afryca.workspace.command.new_snippet

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.NewSnippet. Crea un snippet en el workspace.

afryca.workspace.command.remove_snippet

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.RemoveSnippet. Elimina un snippet del workspace.

afryca.workspace.command.new_module

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.NewModule. Crea un módulo en el workspace.

afryca.workspace.command.remove_module

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.RemoveModule. Elimina un módulo del workspace.

afryca.workspace.command.new_function

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.NewFunction. Crea una función en el workspace.

afryca.workspace.command.remove_function

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.RemoveFunction. Elimina una función del workspace.

afryca.workspace.command.new_module_binding

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.NewModuleBinding. Crea un enlace a módulo en el workspace.

afryca.workspace.command.remove_module_binding

Definido en el plug-in afryca.workspace e implementado por la clase afryca.workspace.command.RemoveModuleBinding. Elimina un enlace a módulo del workspace.

afryca.workspace.gui.command.import_gdmp

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.ImportGDMP. Importa un GDMP en el workspace solicitando su nombre.

afryca.workspace.gui.command.clone_gdmp

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.CloneGDMP. Clona un GDMP en el workspace solicitando su nombre.

afryca.workspace.gui.command.new_gdmp

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.NewGDMP. Crea un GDMP en el workspace empleando el asistente de GDMP.

afryca.workspace.gui.command.remove_gdmp

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RemoveGDMP. Elimina un GDMP del workspace solicitando confirmación.

afryca.workspace.gui.command.request_gdmp_name

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RequestGDMPName. Solicita el nombre para un GDMP.

afryca.workspace.gui.command.modify_workspace_preferences

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.ModifyWorkspacePreferences. Lanza el editor de preferencias del workspace.

afryca.workspace.gui.command.restore_configuration

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RestoreConfiguration. Restaura una configuración.

afryca.workspace.gui.command.request_configuration_name

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RequestConfigurationName. Solicita el nombre para una configuración.

afryca.workspace.gui.command.save_configuration

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.SaveConfiguration. Almacena una configuración en el workspace.

afryca.workspace.gui.command.remove_configuration

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RemoveConfiguration. Elimina una configuración del workspace solicitando confirmación.

afryca.workspace.gui.command.restore_attitude

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RestoreAttitude. Restaura una actitud.

afryca.workspace.gui.command.request_attitude_name

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RequestAttitudeName. Solicita el nombre para una actitud.

afryca.workspace.gui.command.save_attitude

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.SaveAttitude. Almacena una actitud en el workspace.

afryca.workspace.gui.command.remove_attitude

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RemoveAttitude. Elimina una actitud en el workspace solicitando confirmación.

afryca.workspace.gui.command.new_repository

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.NewRepository. Crea un repositorio en el workspace solicitando sus valores.

afryca.workspace.gui.command.request_repository_file_name

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RequestRepositoryFileName. Solicita el nombre para un repositorio.

afryca.workspace.gui.command.remove_repository

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RemoveRepository. Elimina un repositorio del workspace.

afryca.workspace.gui.command.edit_repository

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.EditRepository. Edita un repositorio.

afryca.workspace.gui.command.new_snippet

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.NewSnippet. Crea un snippet en el workspace solicitando sus valores.

afryca.workspace.gui.command.request_snippet_file_name

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RequestSnippetFileName. Solicita el nombre para un snippet.

afryca.workspace.gui.command.remove_snippet

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RemoveSnippet. Elimina un snippet solicitando confirmación.

afryca.workspace.gui.command.edit_snippet

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.EditSnippet. Edita un snippet.

afryca.workspace.gui.command.save_as_snippet

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.SaveAsSnippet. Guarda un fragmento de código como un snippet.

afryca.workspace.gui.command.new_module

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.NewModule. Crea un módulo en el workspace solicitando sus valores.

afryca.workspace.gui.command.request_module_file_name

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RequestModuleFileName. Solicita el nombre para un módulo.

afryca.workspace.gui.command.remove_module

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RemoveModule. Elimina un módulo solicitando confirmación.

afryca.workspace.gui.command.edit_module

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.EditModule. Edita un módulo.

afryca.workspace.gui.command.new_function

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RestoreAttitude. Crea una función en el workspace solicitando sus valores.

afryca.workspace.gui.command.request_function_file_name

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RequestFunctionFileName. Solicita el nombre para una función.

afryca.workspace.gui.command.remove_function

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RemoveFunction. Elimina una función solicitando confirmación.

afryca.workspace.gui.command.edit_function

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.EditFunction. Edita una función.

afryca.workspace.gui.command.edit_module_binding

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.EditModuleBinding. Edita un enlace a modulo.

afryca.workspace.gui.command.new_module_binding

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RemoveFunction. Crea un enlace a módulo en el workspace solicitando sus valores.

afryca.workspace.gui.command.request_module_binding_file_name

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RequestModuleBindingFileName. Solicita el nombre para un enlace a módulo.

afryca.workspace.gui.command.remove_module_binding

Definido en el plug-in afryca.workspace.gui e implementado por la clase afryca.workspace.gui.command.RemoveModuleBinding. Elimina un enlace a módulo solicitando confirmación.

Partes

Las partes definidas por los plug-ins son las siguientes:

afryca.workspace.problems.part

Definida en el plug-in afryca.workspace.gui e implementada por la clase afryca.workspace.gui.part.WorkspaceProblemsPart. Muestra los GDMPs existentes en el workspace y permite su gestión.

afryca.workspace.configurations.part

Definida en el plug-in afryca.workspace.gui e implementada por la clase afryca.workspace.gui.part.WorkspaceConfigurationsPart. Muestra las configuraciones existentes en el workspace para el modelo de consenso seleccionado permitiendo su gestión.

afryca.workspace.attitudes.part

Definida en el plug-in afryca.workspace.gui e implementada por la clase afryca.workspace.gui.part.WorkspaceAttitudesPart. Muestra las actitudes existentes en el workspace para la actitud seleccionada permitiendo su gestión.

afryca.workspace.snippets.part

Definida en el plug-in afryca.workspace.gui e implementada por la clase afryca.workspace.gui.part.WorkspaceSnippetsPart. Muestra los snippets y repositorios existentes en el workspace y permite su gestión.

afryca.workspace.functions.part

Definida en el plug-in afryca.workspace.gui e implementada por la clase afryca.workspace.gui.part.WorkspaceFunctionsPart. Muestra las funciones, módulos y enlaces a módulos existentes en el workspace y permite su gestión.

Preferencias

Los plug-ins emplean las siguientes preferencias.

folder

Usada por el plug-in afryca.workspace. Directorio empleado como workspace.

workspace.problems.view.mode

Usada por el plug-in afryca.workspace.gui. Permite establecer el modo de visualización de los GDMPs en la vista afryca.workspace.problems.part.

 

Notas finales

  1. Cuando se realiza un cambio de workspace el topic 'WORKSPACE/CHANGED' es invocado dos veces, una antes de comenzar ('STATUS' = 'PRE') y otra al finalizar ('STATUS' = 'POS').
  2. El workspace conoce de forma directa a los elementos que gestiona y les proporciona su funcionalidad. Debido a ello:
    1. Los listados de elementos son inyectados en los servicios asociados a cada elemento al realizar su carga desde el workspace.
    2. La interfaz de los eventos lanzados por el broker por el servicio se ha definido en un plug-in independiente ('afryca.workspace.service.events') que puede ser utilizado tanto por un elemento gestionado por el workspace como por el propio workspace y así evitar la aparición de dependencias circulares.
    3. La mayor parte de los comandos del workspace se definen como una capa superior al comando nativo, la cual añade las rutas relativas al workspace y realiza las comprobaciones necesarias antes de realizar su invocación (evitar colisiones de nombres, permisos del directorio, simplificación del nombre del archivo en la interfaz, etc).
    4. Se está estudiando la conveniencia de invertir el enfoque del workspace, pasando a una arquitectura en la que el workspace ofrezca su soporte a través de un punto de extensión y los elementos interesados extiendan este punto para contar con el soporte ofrecido.
  3. Por simplicidad en la definición de las expresiones regulares, el directorio relativo al workspace se almacena internamente con el separador de los sistemas unix '/'. Cada operación que emplea el directorio comprueba la plataforma de ejecución y, en caso de ser una plataforma windows, realiza su reemplazo al separador correspondiente.