/*******************************************************************************
* 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;
/**
* Implements the form part that provides edition of mode related settings.
*
* @author Guillaume Brocker
*/
public class ModePart extends Part {
/**
* state for the entities editor
*/
private static final String ENTITIES_DOCUMENTED = "documented entities only";
/**
* state for the entities editor
*/
private static final String ENTITIES_ALL = "all entities";
/**
* state for the optimized langage editor
*/
private static final String CXX = "C++";
/**
* state for the optimized langage editor
*/
private static final String JAVA = "Java";
/**
* state for the optimized langage editor
*/
private static final String C = "C";
/**
* state for the optimized langage editor
*/
private static final String C_SHARP = "C#";
/**
* the editor used to configure entities whose documentation will be extracted
*/
private RadioMultiEditor entities = new RadioMultiEditor( new String[] {ENTITIES_DOCUMENTED, ENTITIES_ALL} );
/**
* the editor used to configure cross-referenced source code inclusion
*/
private CheckMultiEditor crossReferenced = new CheckMultiEditor( "Include cross-referenced source code in the output" );
/**
* the editor used to selected the optimized ouput langage
*/
private RadioMultiEditor optimizedLangage = new RadioMultiEditor( new String[] {CXX, JAVA, C, C_SHARP} );
/**
* Constructor
*
* @param parent the parent control for the part control's
* @param toolkit the toolkit to use for control creation
* @param doxyfile the doxyfile being edited
*/
public ModePart( Composite parent, FormToolkit toolkit, Doxyfile doxyfile ) {
super( parent, toolkit, "Mode", doxyfile );
// Creates the content.
addLabel("Select the desired extraction mode:");
addEditor(entities);
addEditor(crossReferenced);
addSperator();
addLabel("Optimize results for:");
addEditor( optimizedLangage );
// Initializes the editors.
if( doxyfile.hasSetting("HIDE_UNDOC_MEMBERS")
&& doxyfile.hasSetting("HIDE_UNDOC_CLASSES")
&& doxyfile.hasSetting("EXTRACT_ALL")
&& doxyfile.hasSetting("EXTRACT_PRIVATE")
&& doxyfile.hasSetting("EXTRACT_STATIC") ) {
entities.addSetting(ENTITIES_DOCUMENTED, doxyfile.getSetting("HIDE_UNDOC_MEMBERS") );
entities.addSetting(ENTITIES_DOCUMENTED, doxyfile.getSetting("HIDE_UNDOC_CLASSES") );
entities.addSetting(ENTITIES_ALL, doxyfile.getSetting("EXTRACT_ALL") );
entities.addSetting(ENTITIES_ALL, doxyfile.getSetting("EXTRACT_PRIVATE") );
entities.addSetting(ENTITIES_ALL, doxyfile.getSetting("EXTRACT_STATIC") );
}
else {
entities.setEnabled( false );
}
if( doxyfile.hasSetting("SOURCE_BROWSER")
&& doxyfile.hasSetting("REFERENCED_BY_RELATION")
&& doxyfile.hasSetting("REFERENCES_RELATION")
&& doxyfile.hasSetting("VERBATIM_HEADERS") ) {
crossReferenced.addSetting(CheckMultiEditor.SELECTED, doxyfile.getSetting("SOURCE_BROWSER") );
crossReferenced.addSetting(CheckMultiEditor.SELECTED, doxyfile.getSetting("REFERENCED_BY_RELATION") );
crossReferenced.addSetting(CheckMultiEditor.SELECTED, doxyfile.getSetting("REFERENCES_RELATION") );
crossReferenced.addSetting(CheckMultiEditor.SELECTED, doxyfile.getSetting("VERBATIM_HEADERS") );
}
else {
crossReferenced.setEnabled(false);
}
if( doxyfile.hasSetting("OPTIMIZE_OUTPUT_JAVA")
&& doxyfile.hasSetting("OPTIMIZE_OUTPUT_FOR_C")
&& doxyfile.hasSetting("OPTIMIZE_OUTPUT_JAVA")
&& doxyfile.hasSetting("EXTRACT_STATIC") ) {
optimizedLangage.addSetting(JAVA, doxyfile.getSetting("OPTIMIZE_OUTPUT_JAVA") );
optimizedLangage.addSetting(C, doxyfile.getSetting("OPTIMIZE_OUTPUT_FOR_C") );
optimizedLangage.addSetting(C_SHARP, doxyfile.getSetting("OPTIMIZE_OUTPUT_JAVA") );
optimizedLangage.addSetting(C_SHARP, doxyfile.getSetting("EXTRACT_STATIC") );
}
else {
optimizedLangage.setEnabled(false);
}
}
}