/******************************************************************************* * Copyright (c) 2012 Original authors 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: * Original authors and others - initial API and implementation ******************************************************************************/ package org.eclipse.nebula.widgets.nattable.style.editor; import static org.eclipse.swt.SWT.NONE; import org.eclipse.nebula.widgets.nattable.Messages; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; /** * Control to select the thickness of a border. */ public class BorderThicknessPicker extends Composite { private Combo combo; public BorderThicknessPicker(Composite parent) { super(parent, NONE); setLayout(new RowLayout()); this.combo = new Combo(this, SWT.READ_ONLY | SWT.DROP_DOWN); this.combo.setItems(new String[] { Messages.getString("BorderThicknessPicker.thin"), //$NON-NLS-1$ Messages.getString("BorderThicknessPicker.thick"), //$NON-NLS-1$ Messages.getString("BorderThicknessPicker.veryThick") }); //$NON-NLS-1$ this.combo.select(0); } @Override public void setEnabled(boolean b) { this.combo.setEnabled(b); } public int getSelectedThickness() { int idx = this.combo.getSelectionIndex(); if (idx == 0) return 1; else if (idx == 1) return 3; else if (idx == 2) return 6; else throw new IllegalStateException("never happen"); //$NON-NLS-1$ } public void setSelectedThickness(int thickness) { if (thickness < 0) throw new IllegalArgumentException("negative number"); //$NON-NLS-1$ int idx = 0; if (thickness < 3) idx = 0; else if (thickness < 6) idx = 1; else if (thickness > 6) idx = 2; this.combo.select(idx); } }