package org.eclipse.dltk.ui.text.folding;
import java.util.List;
import org.eclipse.dltk.ui.PreferenceConstants;
import org.eclipse.dltk.ui.preferences.OverlayPreferenceStore;
import org.eclipse.dltk.ui.preferences.OverlayPreferenceStore.OverlayKey;
import org.eclipse.dltk.ui.preferences.PreferencesMessages;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
public class DocumentationFoldingPreferenceBlock extends
AbstractContributedFoldingPreferenceBlock {
public DocumentationFoldingPreferenceBlock(OverlayPreferenceStore store,
PreferencePage page) {
super(store, page);
}
/**
* {@inheritDoc}
*
* <p>
* Sub-classes overriding this method to add additional overlay keys must
* also invoke this method.
* </p>
*/
@Override
protected void addOverlayKeys(List<OverlayKey> keys) {
keys.add(new OverlayPreferenceStore.OverlayKey(
OverlayPreferenceStore.BOOLEAN,
PreferenceConstants.EDITOR_COMMENT_FOLDING_JOIN_NEWLINES));
keys.add(new OverlayPreferenceStore.OverlayKey(
OverlayPreferenceStore.BOOLEAN,
PreferenceConstants.EDITOR_FOLDING_INIT_COMMENTS));
keys.add(new OverlayPreferenceStore.OverlayKey(
OverlayPreferenceStore.BOOLEAN,
PreferenceConstants.EDITOR_FOLDING_INIT_HEADER_COMMENTS));
keys.add(new OverlayPreferenceStore.OverlayKey(
OverlayPreferenceStore.BOOLEAN,
PreferenceConstants.EDITOR_FOLDING_INIT_DOCS));
}
/**
* {@inheritDoc}
*
* <p>
* Sub-classes overriding this method to add additional 'initially fold'
* options must also invoke this method.
* </p>
*/
@Override
protected void addInitiallyFoldOptions(Group group) {
createCheckBox(
group,
PreferencesMessages.FoldingConfigurationBlock_initiallyFoldComments,
PreferenceConstants.EDITOR_FOLDING_INIT_COMMENTS);
createCheckBox(
group,
PreferencesMessages.FoldingConfigurationBlock_initiallyFoldHeaderComments,
PreferenceConstants.EDITOR_FOLDING_INIT_HEADER_COMMENTS);
if (supportsDocFolding()) {
createCheckBox(group, getInitiallyFoldDocsText(),
PreferenceConstants.EDITOR_FOLDING_INIT_DOCS);
}
}
/**
* {@inheritDoc}
*
* <p>
* Sub-classes overriding this method to add additional documentation
* folding options must also invoke this method.
* </p>
*/
@Override
protected void createOptionsControl(Composite composite) {
createCheckBox(composite,
PreferencesMessages.FoldingConfigurationBlock_joinComments,
PreferenceConstants.EDITOR_COMMENT_FOLDING_JOIN_NEWLINES);
}
protected String getInitiallyFoldDocsText() {
return PreferencesMessages.FoldingConfigurationBlock_initiallyFoldDocs;
}
protected boolean supportsDocFolding() {
return false;
}
}