package org.eclipse.swt.widgets;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.control.Separator;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
public class Label extends Control {
private javafx.scene.control.Label control;
private Separator separator;
public Label(Composite parent, int style) {
super(parent,style);
}
@Override
protected void createWidget() {
if( (style & SWT.SEPARATOR) != 0 ) {
separator = new Separator();
} else {
control = new javafx.scene.control.Label();
}
}
public Point computeSize(int wHint, int hHint, boolean flushCache) {
checkWidget ();
int width = (int) internal_getNativeObject().prefWidth(javafx.scene.control.Control.USE_COMPUTED_SIZE);
int height = (int) internal_getNativeObject().prefHeight(javafx.scene.control.Control.USE_COMPUTED_SIZE);
if (wHint != SWT.DEFAULT)
width = wHint;
if (hHint != SWT.DEFAULT)
height = hHint;
Point p = new Point(width, height);
return p;
}
@Override
public Node internal_getNativeObject() {
return control == null ? separator : control;
}
public int getAlignment () {
checkWidget ();
if ((style & SWT.SEPARATOR) != 0) return 0;
if ((style & SWT.LEFT) != 0) return SWT.LEFT;
if ((style & SWT.CENTER) != 0) return SWT.CENTER;
if ((style & SWT.RIGHT) != 0) return SWT.RIGHT;
return SWT.LEFT;
}
public String getText () {
checkWidget ();
if ((style & SWT.SEPARATOR) != 0) return "";
return notNullString(control.getText());
}
public void setAlignment (int alignment) {
checkWidget ();
if ((style & SWT.SEPARATOR) != 0) return;
if ((alignment & (SWT.LEFT | SWT.RIGHT | SWT.CENTER)) == 0) return;
style &= ~(SWT.LEFT | SWT.RIGHT | SWT.CENTER);
style |= alignment & (SWT.LEFT | SWT.RIGHT | SWT.CENTER);
Pos p;
switch (alignment) {
case SWT.RIGHT:
p = Pos.CENTER_RIGHT;
break;
case SWT.CENTER:
p = Pos.CENTER;
break;
default:
p = Pos.CENTER_LEFT;
break;
}
control.setAlignment(p);
}
public void setText (String string) {
checkWidget ();
if (string == null) error (SWT.ERROR_NULL_ARGUMENT);
if ((style & SWT.SEPARATOR) != 0) return;
control.setText(string);
}
// public Image getImage () {
//
// }
//
// public void setImage (Image image) {
//
// }
@Override
public Point getSize() {
return new Point((int)control.getWidth(), (int)control.getHeight());
}
}