/******************************************************************************* * Copyright (C) 2003-2007, 2013, Guillaume Brocker * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Guillaume Brocker - Initial API and implementation * ******************************************************************************/ package eclox.ui.editor.basic; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.widgets.FormToolkit; import eclox.core.doxyfiles.Doxyfile; import eclox.ui.editor.editors.CheckBoxEditor; import eclox.ui.editor.editors.IEditor; import eclox.ui.editor.editors.IEditorListener; public class OutputPart extends Part { /** * Implements an editor listener that will update * enabled states of some editors according to the value * of some other editors. */ private class MyEditorListener implements IEditorListener { /** * @see eclox.ui.editor.editors.IEditorListener#editorDirtyChanged(eclox.ui.editor.editors.IEditor) */ public void editorChanged(IEditor editor) { if( editor == html ) { htmlFlavour.setEnabled( ((CheckBoxEditor)editor).getValue() ); htmlSearchEngine.setEnabled( ((CheckBoxEditor)editor).getValue() ); } else if( editor == latex ) { latexFlavour.setEnabled( ((CheckBoxEditor)editor).getValue() ); } } } /** * html flavour state */ private static final String PLAIN_HTML = "plain HTML"; /** * html flavour state */ private static final String FRAME_HTML = "with frames and navigation tree"; /** * html flavour state */ private static final String CHM_HTML = "prepared for compressed HTML (.chm)"; /** * latex flavour for hyperlinked pdf state */ private static final String LATEX_HYPEDLINKED_PDF = "as itermediate format for hypedlinked PDF"; /** * latex flavour for pdf state */ private static final String LATEX_PDF = "as itermediate format for PDF"; /** * latex flavour for PostScript state */ private static final String LATEX_POSTSCRIPT = "as itermediate format for PostScript"; /** * html editor */ CheckBoxEditor html = new CheckBoxEditor("HTML"); /** * html flavour editor */ RadioMultiEditor htmlFlavour = new RadioMultiEditor( new String[] {PLAIN_HTML, FRAME_HTML, CHM_HTML} ); /** * html search engine editor */ CheckBoxEditor htmlSearchEngine = new CheckBoxEditor( "with search function (requires PHP enabled server)" ); /** * latex editor */ CheckBoxEditor latex = new CheckBoxEditor("LaTeX"); /** * latex flavour editor */ RadioMultiEditor latexFlavour = new RadioMultiEditor( new String[] {LATEX_HYPEDLINKED_PDF, LATEX_PDF, LATEX_POSTSCRIPT} ); CheckBoxEditor man = new CheckBoxEditor("Man Pages"); CheckBoxEditor rtf = new CheckBoxEditor("Rich Text Format"); CheckBoxEditor xml = new CheckBoxEditor("XML"); public OutputPart( Composite parent, FormToolkit toolkit, Doxyfile doxyfile ) { super( parent, toolkit, "Output Formats", doxyfile ); addEditor( html ); addEditor( htmlFlavour, 16 ); addEditor( htmlSearchEngine, 16 ); addEditor( latex ); addEditor( latexFlavour, 16 ); addEditor( man ); addEditor( rtf ); addEditor( xml ); if( doxyfile.hasSetting("GENERATE_HTML") ) { html.addListener(new MyEditorListener()); html.setInput( doxyfile.getSetting("GENERATE_HTML") ); htmlFlavour.addSetting(FRAME_HTML, doxyfile.getSetting("GENERATE_TREEVIEW") ); htmlFlavour.addSetting(CHM_HTML, doxyfile.getSetting("GENERATE_HTMLHELP") ); htmlSearchEngine.setInput( doxyfile.getSetting("SEARCHENGINE") ); } else { html.setEnabled(false); htmlFlavour.setEnabled(false); htmlSearchEngine.setEnabled(false); } if( doxyfile.hasSetting("GENERATE_LATEX") ) { latex.addListener(new MyEditorListener()); latex.setInput( doxyfile.getSetting("GENERATE_LATEX") ); latexFlavour.addSetting(LATEX_HYPEDLINKED_PDF, doxyfile.getSetting("PDF_HYPERLINKS") ); latexFlavour.addSetting(LATEX_HYPEDLINKED_PDF, doxyfile.getSetting("USE_PDFLATEX") ); latexFlavour.addSetting(LATEX_PDF, doxyfile.getSetting("USE_PDFLATEX") ); } else { latex.setEnabled(false); latexFlavour.setEnabled(false); } man.setInput( doxyfile.getSetting("GENERATE_MAN") ); man.setEnabled( man.hasInput() ); rtf.setInput( doxyfile.getSetting("GENERATE_RTF") ); rtf.setEnabled( rtf.hasInput() ); xml.setInput( doxyfile.getSetting("GENERATE_XML") ); xml.setEnabled( xml.hasInput() ); } }