/*******************************************************************************
* Copyright (c) 2017 Rogue Wave Software Inc. and others.
* 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:
* Rogue Wave Software Inc. - initial implementation
*******************************************************************************/
package org.eclipse.php.internal.debug.ui.preferences.coverage;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.php.internal.debug.ui.PHPDebugUIMessages;
import org.eclipse.php.internal.debug.ui.views.coverage.CodeCoverageTextViewer;
import org.eclipse.php.internal.ui.preferences.IPreferenceConfigurationBlock;
import org.eclipse.php.internal.ui.preferences.ScrolledCompositeImpl;
import org.eclipse.php.internal.ui.util.PixelConverter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.dialogs.PreferenceLinkArea;
import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
/**
* Code coverage preferences configuration block.
*/
public class CodeCoverageConfigurationBlock implements IPreferenceConfigurationBlock {
private PreferencePage fPreferencePage;
private CodeCoverageTextViewer fCodeCoverageViewer;
public CodeCoverageConfigurationBlock(PreferencePage preferencePage) {
fPreferencePage = preferencePage;
}
public Control createControl(Composite parent) {
ScrolledCompositeImpl scrolledCompositeImpl = new ScrolledCompositeImpl(parent, SWT.V_SCROLL | SWT.H_SCROLL);
Composite composite = new Composite(scrolledCompositeImpl, SWT.NONE);
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
composite.setLayout(layout);
scrolledCompositeImpl.setContent(composite);
scrolledCompositeImpl.setLayout(layout);
scrolledCompositeImpl.setFont(parent.getFont());
PreferenceLinkArea colorsFontsLink = new PreferenceLinkArea(composite, SWT.NONE,
"org.eclipse.ui.preferencePages.ColorsAndFonts", PHPDebugUIMessages.CodeCoverageConfigurationBlock_1,
(IWorkbenchPreferenceContainer) fPreferencePage.getContainer(), null);
GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
colorsFontsLink.getControl().setLayoutData(data);
Composite previewComposite = new Composite(composite, SWT.NONE);
layout = new GridLayout();
layout.marginTop = 20;
previewComposite.setLayout(layout);
previewComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
Label label = new Label(previewComposite, SWT.NONE);
label.setText(PHPDebugUIMessages.CodeCoverageConfigurationBlock_2);
fCodeCoverageViewer = new CodeCoverageTextViewer(previewComposite, SWT.NONE);
data = new GridData(GridData.FILL_HORIZONTAL);
data.heightHint = new PixelConverter(previewComposite).convertHeightInCharsToPixels(15);
fCodeCoverageViewer.setLayoutData(data);
fCodeCoverageViewer.setCoverageBitmask(new byte[] { 33, 0 });
fCodeCoverageViewer.setSingificanceBitmask(new byte[] { 40, 0 });
fCodeCoverageViewer.setText(PHPDebugUIMessages.CodeCoverageConfigurationBlock_3);
return scrolledCompositeImpl;
}
public void dispose() {
}
public void initialize() {
}
public void performDefaults() {
}
public void performOk() {
}
}