/*******************************************************************************
* Copyright (c) 2012, 2016 PDT Extension Group 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:
* PDT Extension Group - initial API and implementation
*******************************************************************************/
package org.eclipse.php.composer.ui.parts.composer;
import org.eclipse.php.composer.api.ComposerPackage;
import org.eclipse.php.composer.ui.controller.PackageController;
import org.eclipse.php.composer.ui.utils.WidgetFactory;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.forms.IFormColors;
import org.eclipse.ui.forms.widgets.FormToolkit;
public class PackageSearchPart {
protected String name;
protected FormToolkit toolkit;
protected Composite body;
protected Button checkbox;
protected ComposerPackage composerPackage;
public PackageSearchPart(Composite parent, ComposerPackage composerPackage, FormToolkit toolkit, String name) {
this.toolkit = toolkit;
this.name = name;
this.composerPackage = composerPackage;
create(parent, new WidgetFactory(toolkit));
}
protected void create(Composite parent, WidgetFactory factory) {
createBody(parent, factory);
createPackageCheckbox(body, factory, name);
}
protected Composite createBody(Composite parent, WidgetFactory factory) {
body = factory.createComposite(parent, SWT.BORDER);
body.setLayout(new GridLayout());
body.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
body.setBackground(getBackgroundColor());
return body;
}
protected Button createPackageCheckbox(Composite parent, WidgetFactory factory, String name) {
checkbox = new Button(parent, SWT.CHECK);
checkbox.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
checkbox.setSelection(true);
checkbox.setImage(PackageController.getPackageImage(name));
checkbox.setText(PackageController.getPackageName(name));
return checkbox;
}
protected Color getBackgroundColor() {
if (toolkit != null) {
return toolkit.getColors().getColor(IFormColors.TB_BG);
} else {
return Display.getCurrent().getSystemColor(SWT.COLOR_LIST_BACKGROUND);
}
}
public void addSelectionListener(SelectionListener listener) {
checkbox.addSelectionListener(listener);
}
public void removeSelectionListener(SelectionListener listener) {
checkbox.removeSelectionListener(listener);
}
public String getName() {
return name;
}
public boolean isChecked() {
return checkbox.getSelection();
}
public void dispose() {
body.dispose();
}
}