diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/StrategyOrderingPanel.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/StrategyOrderingPanel.java | 322 |
1 files changed, 0 insertions, 322 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/StrategyOrderingPanel.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/StrategyOrderingPanel.java deleted file mode 100644 index c438b960d..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/preferences/StrategyOrderingPanel.java +++ /dev/null @@ -1,322 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2008 Oracle 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: - * Oracle Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.jsf.common.ui.internal.preferences; - -import org.eclipse.core.runtime.Assert; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.resource.JFaceResources; -import org.eclipse.jface.viewers.CheckStateChangedEvent; -import org.eclipse.jface.viewers.CheckboxTableViewer; -import org.eclipse.jface.viewers.ICheckStateListener; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jst.jsf.common.internal.policy.OrderedListProvider; -import org.eclipse.jst.jsf.common.internal.policy.OrderedListProvider.OrderableObject; -import org.eclipse.jst.jsf.common.ui.internal.utils.PixelConverter; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.GC; -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.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; - -/** - * Creates a composite with a checked table viewer and up/down buttons that - * allow ordering and enablement of a list of items in the table. - * - * Largely derived from - * org.eclipse.jdt.internal.ui.preferences.CodeAssistAdvancedConfigurationBlock - * - * @author cbateman - * - */ -public class StrategyOrderingPanel -{ - private CheckboxTableViewer _viewer; - private Button fUpButton; - private Button fDownButton; - - private final OrderedListProvider _provider; - private final ITableLabelProvider _labelProvider; - private final String _title; - - /** - * @param provider - * @param labelProvider - * @param title - */ - public StrategyOrderingPanel(final OrderedListProvider provider, - final ITableLabelProvider labelProvider, final String title) - { - _provider = provider; - _labelProvider = labelProvider; - _title = title; - } - - /** - * @param parent - * @return the control - */ - public Control createContents(final Composite parent) - { - final Composite panel = new Composite(parent, SWT.NONE); - final GridLayout layout = new GridLayout(2, false); - layout.marginWidth = 0; - layout.marginHeight = 0; - panel.setLayout(layout); - - final Label titleLabel = new Label(panel, SWT.NONE); - titleLabel.setText(_title); - final GridData gridData = new GridData(GridData.FILL, - GridData.BEGINNING, true, false, 2, 1); - titleLabel.setLayoutData(gridData); - - createTableViewer(panel); - createButtonList(panel); - - return panel; - } - - /** - * Refresh the UI from model. Must not be called before createContents - */ - public void refresh() - { - _provider.resetOrderedObjects(); - _viewer.refresh(); - for (final OrderableObject object : _provider.getOrderedObjects()) - { - _viewer.setChecked(object, object.isEnabled()); - } - } - - private void createTableViewer(final Composite parent) - { - _viewer = CheckboxTableViewer.newCheckList(parent, SWT.SINGLE - | SWT.BORDER); - final Table table = _viewer.getTable(); - table.setHeaderVisible(false); - table.setLinesVisible(false); - table.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, - true, false, 1, 1)); - - final TableColumn nameColumn = new TableColumn(table, SWT.NONE); - // nameColumn - // .setText(PreferencesMessages.CodeAssistAdvancedConfigurationBlock_separate_table_category_column_title); - nameColumn.setResizable(false); - - _viewer.setContentProvider(new ContentProvider()); - - _viewer.setLabelProvider(_labelProvider); - _viewer.setInput(_provider); - - final int ICON_AND_CHECKBOX_WITH = 50; - final int HEADER_MARGIN = 20; - int minNameWidth = computeWidth(table, nameColumn.getText()) - + HEADER_MARGIN; - for (int i = 0; i < _provider.getOrderedObjects().size(); i++) - { - minNameWidth = Math.max(minNameWidth, computeWidth(table, - _labelProvider.getColumnText(_provider.getOrderedObjects() - .get(i), 0)) - + ICON_AND_CHECKBOX_WITH); - } - - nameColumn.setWidth(minNameWidth); - - _viewer.addCheckStateListener(new ICheckStateListener() - { - public void checkStateChanged(final CheckStateChangedEvent event) - { - final boolean checked = event.getChecked(); - final OrderableObject element = (OrderableObject) event - .getElement(); - element.setEnabled(checked); - } - }); - - table.addSelectionListener(new SelectionAdapter() - { - @Override - public void widgetSelected(final SelectionEvent e) - { - handleTableSelection(); - } - }); - - } - - private void createButtonList(final Composite parent) - { - final Composite composite = new Composite(parent, SWT.NONE); - composite.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, - false, false)); - - final GridLayout layout = new GridLayout(); - layout.marginWidth = 0; - layout.marginHeight = 0; - composite.setLayout(layout); - - fUpButton = new Button(composite, SWT.PUSH | SWT.CENTER); - fUpButton.setText(OrderingMessages.Ordering_Up); - fUpButton.addSelectionListener(new SelectionAdapter() - { - @Override - public void widgetSelected(final SelectionEvent e) - { - final int index = getSelectionIndex(); - if (index != -1) - { - final OrderableObject object = _provider - .getOrderedObjects().get(index); - _provider.moveUp(object); - _viewer.refresh(); - handleTableSelection(); - } - } - }); - fUpButton.setLayoutData(new GridData()); - setButtonDimensionHint(fUpButton); - - fDownButton = new Button(composite, SWT.PUSH | SWT.CENTER); - fDownButton.setText(OrderingMessages.Ordering_Down); - fDownButton.addSelectionListener(new SelectionAdapter() - { - @Override - public void widgetSelected(final SelectionEvent e) - { - final int index = getSelectionIndex(); - if (index != -1) - { - final OrderableObject object = _provider - .getOrderedObjects().get(index); - _provider.moveDown(object); - _viewer.refresh(); - handleTableSelection(); - } - } - }); - fDownButton.setLayoutData(new GridData()); - setButtonDimensionHint(fDownButton); - } - - private int computeWidth(final Control control, final String name) - { - if (name == null) - { - return 0; - } - final GC gc = new GC(control); - try - { - gc.setFont(JFaceResources.getDialogFont()); - return gc.stringExtent(name).x + 10; - } - finally - { - gc.dispose(); - } - } - - private void handleTableSelection() - { - final OrderableObject item = getSelectedItem(); - if (item != null) - { - final int index = getSelectionIndex(); - fUpButton.setEnabled(index > 0); - fDownButton - .setEnabled(index < _provider.getOrderedObjects().size() - 1); - } - else - { - fUpButton.setEnabled(false); - fDownButton.setEnabled(false); - } - } - - private OrderableObject getSelectedItem() - { - return (OrderableObject) ((IStructuredSelection) _viewer.getSelection()) - .getFirstElement(); - } - - private int getSelectionIndex() - { - return _viewer.getTable().getSelectionIndex(); - } - - /** - * Returns a width hint for a button control. - */ - private static int getButtonWidthHint(final Button button) - { - button.setFont(JFaceResources.getDialogFont()); - PixelConverter converter = new PixelConverter(button); - final int widthHint = converter - .convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH); - return Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, - true).x); - } - - /** - * Sets width and height hint for the button control. <b>Note:</b> This is - * a NOP if the button's layout data is not an instance of - * <code>GridData</code>. - * - * @param button - * the button for which to set the dimension hint - */ - private static void setButtonDimensionHint(final Button button) - { - Assert.isNotNull(button); - final Object gd = button.getLayoutData(); - if (gd instanceof GridData) - { - ((GridData) gd).widthHint = getButtonWidthHint(button); - ((GridData) gd).horizontalAlignment = GridData.FILL; - } - } - - private static class ContentProvider implements IStructuredContentProvider - { - - public Object[] getElements(final Object inputElement) - { - if (inputElement instanceof OrderedListProvider) - { - return ((OrderedListProvider) inputElement).getOrderedObjects() - .toArray(); - } - return new Object[0]; - } - - public void dispose() - { - // do nothing - } - - public void inputChanged(final Viewer viewer, final Object oldInput, - final Object newInput) - { - // do nothing - } - - } -} |