blob: 85da6c658c52da6f0c5557ed6f91279447439ee4 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2007 IBM Corporation 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ui.internal.navigator.filters;
import java.util.HashSet;
import java.util.Set;
import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ICheckStateListener;
import org.eclipse.jface.viewers.ISelectionChangedListener;
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.Label;
import org.eclipse.swt.widgets.Table;
import org.eclipse.ui.navigator.INavigatorContentService;
/**
* @since 3.2
*
*/
public class CustomizationTab extends Composite {
private final INavigatorContentService contentService;
private CheckboxTableViewer tableViewer;
private final Set checkedItems = new HashSet();
private ICheckStateListener checkListener = new ICheckStateListener() {
public void checkStateChanged(CheckStateChangedEvent event) {
if(event.getChecked())
checkedItems.add(event.getElement());
else
checkedItems.remove(event.getElement());
}
};
protected CustomizationTab(Composite parent,
INavigatorContentService aContentService) {
super(parent, SWT.RESIZE);
contentService = aContentService;
setFont(getParent().getFont());
setLayout(new GridLayout());
GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
setData(data);
}
protected Table getTable() {
return tableViewer.getTable();
}
protected void addSelectionChangedListener(
ISelectionChangedListener selectionListener) {
if (tableViewer != null) {
tableViewer
.addSelectionChangedListener(selectionListener);
}
}
protected void createTable() {
tableViewer = CheckboxTableViewer.newCheckList(this,SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
tableViewer.addCheckStateListener(checkListener);
tableViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
tableViewer.getControl().setFont(getFont());
}
/* (non-Javadoc)
* @see org.eclipse.swt.widgets.Widget#dispose()
*/
public void dispose() {
tableViewer.removeCheckStateListener(checkListener);
super.dispose();
}
protected void createInstructionsLabel(String labelText) {
Label extensionsInstructionLabel = new Label(this, SWT.BOLD | SWT.WRAP);
GridData gridData = new GridData(GridData.FILL_HORIZONTAL
| GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL
| GridData.VERTICAL_ALIGN_FILL);
extensionsInstructionLabel.setLayoutData(gridData);
extensionsInstructionLabel.setFont(getFont());
extensionsInstructionLabel.setText(labelText);
}
protected final INavigatorContentService getContentService() {
return contentService;
}
protected final CheckboxTableViewer getTableViewer() {
return tableViewer;
}
protected Set getCheckedItems() {
return checkedItems;
}
}