use of org.apache.pivot.wtk.TabPane in project pivot by apache.
the class BuilderExample method buildWindow.
private static MyWindow buildWindow() {
final HashMap<String, Object> namespace = new HashMap<>();
return new MyWindow() {
{
setContent(new TabPane() {
{
namespace.put("tabPane", this);
getTabs().add(new Label() {
{
setText("Label 1");
TabPane.setTabData(this, "Label 1");
}
});
getTabs().add(new Label() {
{
setText("Label 2");
TabPane.setTabData(this, "Label 2");
}
});
getTabs().add(new Label() {
{
setText("Label 3");
TabPane.setTabData(this, "Label 3");
}
});
setSelectedIndex(2);
}
});
setTitle("Builder Example");
setMaximized(true);
initialize(namespace, null, null);
}
};
}
use of org.apache.pivot.wtk.TabPane in project pivot by apache.
the class TerraTabPaneSkin method getPreferredTabSize.
private Dimensions getPreferredTabSize() {
int preferredTabWidth = 0;
int preferredTabHeight = 0;
TabPane tabPane = (TabPane) getComponent();
for (Component tab : tabPane.getTabs()) {
Dimensions preferredSize = tab.getPreferredSize();
preferredTabWidth = Math.max(preferredTabWidth, preferredSize.width);
preferredTabHeight = Math.max(preferredTabHeight, preferredSize.height);
}
return new Dimensions(preferredTabWidth, preferredTabHeight);
}
use of org.apache.pivot.wtk.TabPane in project pivot by apache.
the class TerraTabPaneSkin method layout.
@Override
public void layout() {
TabPane tabPane = (TabPane) getComponent();
int width = getWidth();
int height = getHeight();
int tabX = 0;
int tabY = 0;
int tabWidth = 0;
int tabHeight = 0;
Component corner = tabPane.getCorner();
Dimensions buttonPanoramaSize = tabButtonPanorama.getPreferredSize();
switch(tabOrientation) {
case HORIZONTAL:
{
int buttonPanoramaWidth = Math.min(width, buttonPanoramaSize.width);
int buttonPanoramaHeight = buttonPanoramaSize.height;
int buttonPanoramaY = 0;
if (corner != null) {
int cornerWidth = Math.max(width - buttonPanoramaWidth - 2, corner.getPreferredWidth());
if (cornerWidth > width - 2) {
cornerWidth = Math.max(width - 2, 0);
}
if (buttonPanoramaWidth + 2 + cornerWidth > width) {
buttonPanoramaWidth = Math.max(width - 2 - cornerWidth, 0);
}
int cornerHeight = Math.max(corner.getPreferredHeight(-1), buttonPanoramaSize.height - 1);
int cornerX = width - cornerWidth;
int cornerY = Math.max(buttonPanoramaHeight - cornerHeight - 1, 0);
buttonPanoramaY = Math.max(cornerHeight - buttonPanoramaHeight + 1, 0);
corner.setLocation(cornerX, cornerY);
corner.setSize(cornerWidth, cornerHeight);
}
tabButtonPanorama.setLocation(0, buttonPanoramaY);
tabButtonPanorama.setSize(buttonPanoramaWidth, buttonPanoramaHeight);
tabX = padding.left + 1;
tabY = padding.top + buttonPanoramaY + buttonPanoramaHeight;
tabWidth = Math.max(width - (padding.left + padding.right + 2), 0);
tabHeight = Math.max(height - (padding.top + padding.bottom + buttonPanoramaY + buttonPanoramaHeight + 1), 0);
break;
}
case VERTICAL:
{
int buttonPanoramaWidth = buttonPanoramaSize.width;
int buttonPanoramaHeight = Math.min(height, buttonPanoramaSize.height);
int buttonPanoramaX = 0;
if (corner != null) {
int cornerHeight = Math.max(height - buttonPanoramaHeight - 2, corner.getPreferredHeight());
if (cornerHeight > height - 2) {
cornerHeight = Math.max(height - 2, 0);
}
if (buttonPanoramaHeight + 2 + cornerHeight > height) {
buttonPanoramaHeight = Math.max(height - 2 - cornerHeight, 0);
}
int cornerWidth = Math.max(corner.getPreferredWidth(-1), buttonPanoramaSize.width - 1);
int cornerX = Math.max(buttonPanoramaWidth - cornerWidth - 1, 0);
int cornerY = height - cornerHeight;
buttonPanoramaX = Math.max(cornerWidth - buttonPanoramaWidth + 1, 0);
corner.setLocation(cornerX, cornerY);
corner.setSize(cornerWidth, cornerHeight);
}
tabButtonPanorama.setLocation(buttonPanoramaX, 0);
tabButtonPanorama.setSize(buttonPanoramaWidth, buttonPanoramaHeight);
tabX = padding.left + buttonPanoramaX + buttonPanoramaWidth;
tabY = padding.top + 1;
tabWidth = Math.max(width - (padding.left + padding.right + buttonPanoramaX + buttonPanoramaWidth + 1), 0);
tabHeight = Math.max(height - (padding.top + padding.bottom + 2), 0);
break;
}
default:
{
break;
}
}
// Lay out the tabs
for (Component tab : tabPane.getTabs()) {
tab.setLocation(tabX, tabY);
if (selectionChangeTransition != null && selectionChangeTransition.isRunning()) {
clipDecorator.setSize(tabWidth, tabHeight);
switch(tabOrientation) {
case HORIZONTAL:
{
tab.setSize(tabWidth, getPreferredTabHeight(tabWidth));
break;
}
case VERTICAL:
{
tab.setSize(getPreferredTabWidth(tabHeight), tabHeight);
break;
}
default:
{
break;
}
}
} else {
tab.setSize(tabWidth, tabHeight);
}
}
}
use of org.apache.pivot.wtk.TabPane in project pivot by apache.
the class TerraTabPaneSkin method getPreferredTabHeight.
private int getPreferredTabHeight(int width) {
int preferredTabHeight = 0;
TabPane tabPane = (TabPane) getComponent();
for (Component tab : tabPane.getTabs()) {
preferredTabHeight = Math.max(preferredTabHeight, tab.getPreferredHeight(width));
}
return preferredTabHeight;
}
use of org.apache.pivot.wtk.TabPane in project pivot by apache.
the class TerraTabPaneSkin method keyPressed.
/**
* Key presses have no effect if the event has already been consumed.<p>
* CommandModifier + {@link KeyCode#KEYPAD_1 KEYPAD_1} to
* {@link KeyCode#KEYPAD_9 KEYPAD_9}<br>or CommandModifier +
* {@link KeyCode#N1 1} to {@link KeyCode#N9 9} Select the (enabled) tab at
* index 0 to 8 respectively.
* <p> CommandModifier + Tab to cycle forward through the tabs,
* CommandModifier + Shift + Tab to cycle backward.
*
* @see Platform#getCommandModifier()
*/
@Override
public boolean keyPressed(Component component, int keyCode, Keyboard.KeyLocation keyLocation) {
boolean consumed = super.keyPressed(component, keyCode, keyLocation);
Keyboard.Modifier commandModifier = Platform.getCommandModifier();
if (!consumed && Keyboard.isPressed(commandModifier)) {
TabPane tabPane = (TabPane) getComponent();
TabPane.TabSequence tabs = tabPane.getTabs();
int selectedIndex = -1;
switch(keyCode) {
case Keyboard.KeyCode.KEYPAD_1:
case Keyboard.KeyCode.N1:
{
selectedIndex = 0;
break;
}
case Keyboard.KeyCode.KEYPAD_2:
case Keyboard.KeyCode.N2:
{
selectedIndex = 1;
break;
}
case Keyboard.KeyCode.KEYPAD_3:
case Keyboard.KeyCode.N3:
{
selectedIndex = 2;
break;
}
case Keyboard.KeyCode.KEYPAD_4:
case Keyboard.KeyCode.N4:
{
selectedIndex = 3;
break;
}
case Keyboard.KeyCode.KEYPAD_5:
case Keyboard.KeyCode.N5:
{
selectedIndex = 4;
break;
}
case Keyboard.KeyCode.KEYPAD_6:
case Keyboard.KeyCode.N6:
{
selectedIndex = 5;
break;
}
case Keyboard.KeyCode.KEYPAD_7:
case Keyboard.KeyCode.N7:
{
selectedIndex = 6;
break;
}
case Keyboard.KeyCode.KEYPAD_8:
case Keyboard.KeyCode.N8:
{
selectedIndex = 7;
break;
}
case Keyboard.KeyCode.KEYPAD_9:
case Keyboard.KeyCode.N9:
{
selectedIndex = 8;
break;
}
case Keyboard.KeyCode.TAB:
selectedIndex = tabPane.getSelectedIndex();
if (Keyboard.isPressed(Keyboard.Modifier.SHIFT)) {
if (selectedIndex <= 0) {
selectedIndex = tabs.getLength() - 1;
} else {
selectedIndex--;
}
} else {
if (selectedIndex >= tabs.getLength() - 1) {
selectedIndex = 0;
} else {
selectedIndex++;
}
}
break;
default:
{
break;
}
}
if (selectedIndex >= 0 && selectedIndex < tabs.getLength() && tabs.get(selectedIndex).isEnabled()) {
tabPane.setSelectedIndex(selectedIndex);
consumed = true;
}
}
return consumed;
}
Aggregations