Os Formulários de UI proporcionam um suporte básico para editores multi-página onde se pode construir.
Deve começar a construir um editor multi-página Formulários de UI estendendo o FormEditor
:
public class SimpleFormEditor extends FormEditor { public SimpleFormEditor() { } protected FormToolkit createToolkit(Display display) { // Create a toolkit that shares colors between editors. return new FormToolkit(ExamplesPlugin.getDefault().getFormColors( display)); } protected void addPages() { try { addPage(new FreeFormPage(this)); addPage(new SecondPage(this)); addPage(new ThirdPage(this)); addPage(new MasterDetailsPage(this)); addPage(new PageWithSubPages(this)); } catch (PartInitException e) { // } } public void doSave(IProgressMonitor monitor) { } public void doSaveAs() { } public boolean isSaveAsAllowed() { return false; }
Uma maneira muito simples de começar é criar páginas e adicioná-las como acima se indica.
Cada página deve implementar FormPage
e sobrepor o método createFormContent(IManagedForm managedForm)
. Obviamente que há um formulário gerido já criado na página, e que deve criar conteúdo no formulário anexo, e também registar quaisquer partes de formulários que tenham se fazer parte do ciclo de vida gerido.
Além das páginas de formulários, poderá adicionar um ou mais editores de texto como alternativa de fonte em bruto às páginas da GUI (graphical user interface - interface gráfica de utilizador). Para isso, deverá chamar o método addPage(IEditorPart,
IEditorInput input)
' na superclasse.
Existem muitas maneiras de compor um editor multi-página baseado em formulários. Depende do tipo de conteúdo que estiver a editar e das aptidões dos utilizadores. Há duas abordagens possíveis:
Se os utilizadores habituais recorrem frequentemente ao editor, é difícil ou complexo editar código fonte em bruto manualmente, os utilizadores não sabem muita técnica, etc., deverá compor páginas COMPLETE que são totalmente capazes de editar todos os aspectos do conteúdo sem precisar de recorrer ao código fonte em bruto. Nesta abordagem, a página de fonte só lá está para validação ocasional, e não para trabalho regular. Nesse sentido, poderá ficar com um editor de texto básico. O editor de esquemas de pontos de extensão PDE insere-se neste grupo.
Se os utilizadores tiverem mais técnica, não tiverem problemas a editar o ficheiro manualmente mas prefiram alguma ajuda de vez em quando, considere uma experiência mista - compor um bom editor de fonte com todos os suplementos como, por exemplo, esquemas incrementais, assistência de conteúdo, destaque de sintaxe, etc. Por sua vez, adicione funcionalidades de valor acrescentado nas páginas de formulários que sejam difíceis de conseguir do código fonte. Já aprendemos com a experiência que é muito difícil convencer utilizadores competentes a mudar da edição de fonte se o valor acrescentado for residual ou discutível. Todavia, funcionalidades que só estavam disponíveis nas páginas da GUI e tinham alta qualidade foram prontamente utilizadas.
A criação de um editor multi-página com páginas mistas de GUI e código fonte constitui um desafio. Aceitar que os utilizadores mudem de páginas frequentemente implica um bom modelo do conteúdo subjacente. O modelo deve estar directamente ligado ao(s) documento(s) subjacente(s), de modo a estar em sincronia, tanto quando os utilizadores escrevem no texto directamente como quando o alteram estruturalmente nas páginas da GUI (não se esqueça das alterações indirectas causadas por outras acções da área de trabalho com o editor ainda activo).