Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrols/ControlsDemo.java b/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrols/ControlsDemo.java
- old mode 100644
- new mode 100755
- index 27ea755..1ff7085
- --- a/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrols/ControlsDemo.java
- +++ b/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrols/ControlsDemo.java
- @@ -20,6 +20,7 @@
- import de.lessvoid.nifty.controls.dropdown.builder.DropDownBuilder;
- import de.lessvoid.nifty.controls.label.builder.LabelBuilder;
- import de.lessvoid.nifty.controls.slider.builder.SliderBuilder;
- +import de.lessvoid.nifty.examples.defaultcontrols.buttons.ButtonsControlDialogDefinition;
- import de.lessvoid.nifty.examples.defaultcontrols.chatcontrol.ChatControlDialogDefinition;
- import de.lessvoid.nifty.examples.defaultcontrols.common.CommonBuilders;
- import de.lessvoid.nifty.examples.defaultcontrols.common.DialogPanelControlDefinition;
- @@ -78,6 +79,7 @@
- TextFieldDialogControlDefinition.register(nifty);
- SliderAndScrollbarDialogControlDefinition.register(nifty);
- DragAndDropDialogDefinition.register(nifty);
- + ButtonsControlDialogDefinition.register(nifty);
- createIntroScreen(nifty);
- createDemoScreen(nifty);
- @@ -237,7 +239,8 @@
- "menuButtonChatControl", "dialogChatControl",
- "menuButtonMessageBox", "dialogMessageBox",
- "menuButtonTabsControl", "dialogTabsControl",
- - "menuButtonTreeBoxControl", "dialogTreeBoxControl"
- + "menuButtonTreeBoxControl", "dialogTreeBoxControl",
- + "menuButtonButtonsControl", "dialogButtonsControl"
- ));
- inputMapping("de.lessvoid.nifty.input.mapping.DefaultInputMapping"); // this will enable Keyboard events for the screen controller
- layer(new LayerBuilder("layer") {{
- @@ -283,6 +286,8 @@
- panel(builders.hspacer("10px"));
- control(MenuButtonControlDefinition.getControlBuilderUser("menuButtonTreeBoxControl", "TreeBoxControl", "TreeBox Control demonstration\n\nThis control was contributed by Nifty User ractoc. It demonstrates\nhow you can combine Nifty standard controls to build more\ncomplex stuff. In this case we've just included his work as\nanother standard control to Nifty! :)"));
- panel(builders.hspacer("10px"));
- + control(MenuButtonControlDefinition.getControlBuilderUser("menuButtonButtonsControl", "ButtonsControl", "Button control demonstration\n\nSimply show the button control with possibility to change text/image layout"));
- + panel(builders.hspacer("10px"));
- }});
- panel(new PanelBuilder("dialogParent") {{
- childLayoutOverlay();
- @@ -299,6 +304,7 @@
- control(new ControlBuilder("dialogMessageBox", MessageBoxDialogDefinition.NAME));
- control(new ControlBuilder("dialogTabsControl", TabsControlDialogDefinition.NAME));
- control(new ControlBuilder("dialogTreeBoxControl", TreeBoxControlDialogDefinition.NAME));
- + control(new ControlBuilder("dialogButtonsControl", ButtonsControlDialogDefinition.NAME));
- }});
- }});
- layer(new LayerBuilder() {{
- diff --git a/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrols/buttons/ButtonsControlDialogController.java b/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrols/buttons/ButtonsControlDialogController.java
- new file mode 100644
- index 0000000..92bfaa1
- --- /dev/null
- +++ b/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrols/buttons/ButtonsControlDialogController.java
- @@ -0,0 +1,103 @@
- +package de.lessvoid.nifty.examples.defaultcontrols.buttons;
- +
- +import java.util.Properties;
- +
- +import de.lessvoid.nifty.Nifty;
- +import de.lessvoid.nifty.NiftyEventSubscriber;
- +import de.lessvoid.nifty.controls.Button;
- +import de.lessvoid.nifty.controls.Controller;
- +import de.lessvoid.nifty.controls.DropDown;
- +import de.lessvoid.nifty.controls.DropDownSelectionChangedEvent;
- +import de.lessvoid.nifty.controls.RadioButton;
- +import de.lessvoid.nifty.controls.RadioButtonStateChangedEvent;
- +import de.lessvoid.nifty.controls.button.ButtonControl.ButtonLayout;
- +import de.lessvoid.nifty.elements.Element;
- +import de.lessvoid.nifty.examples.defaultcontrols.common.CommonBuilders;
- +import de.lessvoid.nifty.input.NiftyInputEvent;
- +import de.lessvoid.nifty.render.NiftyImage;
- +import de.lessvoid.nifty.screen.Screen;
- +import de.lessvoid.nifty.spi.render.RenderImage;
- +import de.lessvoid.xml.xpp3.Attributes;
- +
- +/**
- + * The TabsControlDialogController registers a new control with Nifty
- + * that represents the whole Dialog. This gives us later an appropriate
- + * ControlBuilder to actual construct the Dialog (as a control).
- + * @author ractoc
- + */
- +public class ButtonsControlDialogController implements Controller {
- + private static CommonBuilders builders = new CommonBuilders();
- + private Button button;
- + private DropDown<ButtonLayout> layoutDropDown;
- + private RadioButton yinRadio;
- + private RadioButton yangRadio;
- + private Nifty nifty;
- +
- + @Override
- + public void bind(
- + final Nifty nifty,
- + final Screen screen,
- + final Element element,
- + final Properties parameter,
- + final Attributes controlDefinitionAttributes) {
- + this.nifty = nifty;
- + button = screen.findNiftyControl(ButtonsControlDialogDefinition.BUTTON_ID, Button.class);
- + layoutDropDown = screen.findNiftyControl(ButtonsControlDialogDefinition.LAYOUTDROPDOWN_ID, DropDown.class);
- + yinRadio = screen.findNiftyControl(ButtonsControlDialogDefinition.IMAGERADIO_YIN_ID, RadioButton.class);
- + yangRadio = screen.findNiftyControl(ButtonsControlDialogDefinition.IMAGERADIO_YANG_ID, RadioButton.class);
- + }
- +
- + @NiftyEventSubscriber(id = ButtonsControlDialogDefinition.LAYOUTDROPDOWN_ID)
- + public void onDropDownSelectionChanged(final String id, final DropDownSelectionChangedEvent<ButtonLayout> event) {
- + ButtonLayout layout = event.getSelection();
- + button.setButtonLayout(layout);
- + }
- +
- + @NiftyEventSubscriber(id = ButtonsControlDialogDefinition.IMAGERADIO_YIN_ID)
- + public void onYinRadioChanged(final String id, final RadioButtonStateChangedEvent event) {
- + if (!event.isSelected()) {
- + return;
- + }
- + NiftyImage image = nifty.createImage("defaultcontrols/yin.png", true);
- + button.setImage(image);
- + }
- +
- + @NiftyEventSubscriber(id = ButtonsControlDialogDefinition.IMAGERADIO_YANG_ID)
- + public void onYangRadioChanged(final String id, final RadioButtonStateChangedEvent event) {
- + if (!event.isSelected()) {
- + return;
- + }
- + NiftyImage image = nifty.createImage("defaultcontrols/yang.png", true);
- + button.setImage(image);
- + }
- + @NiftyEventSubscriber(id = ButtonsControlDialogDefinition.IMAGERADIO_LOGO_ID)
- + public void onLogoRadioChanged(final String id, final RadioButtonStateChangedEvent event) {
- + if (!event.isSelected()) {
- + return;
- + }
- + NiftyImage image = nifty.createImage("defaultcontrols/nifty-logo.png", true);
- + button.setImage(image);
- + }
- +
- + @Override
- + public void init(final Properties parameter, final Attributes controlDefinitionAttributes) {
- + yinRadio.select();
- + layoutDropDown.addItem(ButtonLayout.TEXT_OVER);
- + layoutDropDown.addItem(ButtonLayout.TEXT_ABOVE);
- + layoutDropDown.addItem(ButtonLayout.TEXT_BELOW);
- + layoutDropDown.selectItem(ButtonLayout.TEXT_OVER);
- + }
- +
- + @Override
- + public void onStartScreen() {
- + }
- +
- + @Override
- + public void onFocus(final boolean getFocus) {
- + }
- +
- + @Override
- + public boolean inputEvent(final NiftyInputEvent inputEvent) {
- + return false;
- + }
- +}
- diff --git a/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrols/buttons/ButtonsControlDialogDefinition.java b/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrols/buttons/ButtonsControlDialogDefinition.java
- new file mode 100644
- index 0000000..00f4b7d
- --- /dev/null
- +++ b/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrols/buttons/ButtonsControlDialogDefinition.java
- @@ -0,0 +1,104 @@
- +package de.lessvoid.nifty.examples.defaultcontrols.buttons;
- +
- +import de.lessvoid.nifty.Nifty;
- +import de.lessvoid.nifty.builder.ControlBuilder;
- +import de.lessvoid.nifty.builder.ControlDefinitionBuilder;
- +import de.lessvoid.nifty.builder.PanelBuilder;
- +import de.lessvoid.nifty.controls.button.builder.ButtonBuilder;
- +import de.lessvoid.nifty.controls.dropdown.builder.DropDownBuilder;
- +import de.lessvoid.nifty.controls.radiobutton.builder.RadioButtonBuilder;
- +import de.lessvoid.nifty.controls.radiobutton.builder.RadioGroupBuilder;
- +import de.lessvoid.nifty.examples.defaultcontrols.common.CommonBuilders;
- +import de.lessvoid.nifty.examples.defaultcontrols.common.DialogPanelControlDefinition;
- +
- +/**
- + * The ChatControlDialogRegister registers a new control (the whole ChatControlDialog) with
- + * Nifty. We can later simply generate the whole dialog using a control with the given NAME.
- + *
- + * @author void
- + */
- +public class ButtonsControlDialogDefinition {
- + public static String NAME = "buttonsControlDialogControl";
- + public static final String MAINPANEL_ID = "mainPanel";
- + public static final String BUTTON_ID = "Button";
- + public static final String CONTROLPANEL_ID = "ControlPanel";
- + public static final String LAYOUTDROPDOWN_ID = "LayoutDropDown";
- + public static final String IMAGERADIO_GROUP_ID = "ImageRadioGroup";
- + public static final String IMAGERADIO_YIN_ID = "ImageRadioYin";
- + public static final String IMAGERADIO_YANG_ID = "ImageRadioYang";
- + public static final String IMAGERADIO_LOGO_ID = "ImageRadioLogo";
- + private static CommonBuilders builders = new CommonBuilders();
- +
- + public static void register(final Nifty nifty) {
- + new ControlDefinitionBuilder(NAME) {
- + {
- + controller(new ButtonsControlDialogController());
- + control(new ControlBuilder(DialogPanelControlDefinition.NAME) {
- + {
- + panel(new PanelBuilder(MAINPANEL_ID) {
- + {
- + childLayoutHorizontal();
- + control(new ButtonBuilder(BUTTON_ID) {
- + {
- + width(pixels(60));
- + height(pixels(60));
- + label("ButtonLabel");
- + image("defaultcontrols/yin.png");
- + }
- + });
- + panel(builders.hspacer("20px"));
- + panel(new PanelBuilder(CONTROLPANEL_ID) {
- + {
- + childLayoutVertical();
- + width("250px");
- + panel(new PanelBuilder() {
- + {
- + childLayoutHorizontal();
- + control(builders.createLabel("Layout:", "100px"));
- + panel(builders.hspacer("5px"));
- + control(new DropDownBuilder(LAYOUTDROPDOWN_ID) {
- + {
- + }
- + });
- + }
- + });
- + panel(builders.vspacer());
- + panel(new PanelBuilder() {
- + {
- + childLayoutHorizontal();
- + control(builders.createLabel("Image:", "100px"));
- + control(new RadioGroupBuilder(IMAGERADIO_GROUP_ID));
- + control(new RadioButtonBuilder(IMAGERADIO_YIN_ID) {
- + {
- + group(IMAGERADIO_GROUP_ID);
- + }
- + });
- + control(builders.createShortLabel("Yin"));
- + panel(builders.hspacer("5px"));
- + control(new RadioButtonBuilder(IMAGERADIO_YANG_ID) {
- + {
- + group(IMAGERADIO_GROUP_ID);
- + }
- + });
- + control(builders.createShortLabel("Yang"));
- + panel(builders.hspacer("5px"));
- + control(new RadioButtonBuilder(IMAGERADIO_LOGO_ID) {
- + {
- + group(IMAGERADIO_GROUP_ID);
- + }
- + });
- + control(builders.createShortLabel("Nifty Logo"));
- +
- + }
- + });
- +
- + }
- + });
- + }
- + });
- + }
- + });
- + }
- + }.registerControlDefintion(nifty);
- + }
- +}
- diff --git a/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrolsxml/DefaultControlsXmlMain.java b/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrolsxml/DefaultControlsXmlMain.java
- old mode 100644
- new mode 100755
- index 1e6369b..0671c0e
- --- a/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrolsxml/DefaultControlsXmlMain.java
- +++ b/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrolsxml/DefaultControlsXmlMain.java
- @@ -32,7 +32,8 @@
- // nifty.fromXml("src/main/resources/defaultcontrolsxml/12-slider.xml", "start");
- // nifty.fromXml("src/main/resources/defaultcontrolsxml/13-textfield.xml", "start");
- // nifty.fromXml("src/main/resources/defaultcontrolsxml/14-window.xml", "start");
- - nifty.fromXml("src/main/resources/defaultcontrolsxml/15-tabs.xml", "start");
- +// nifty.fromXml("src/main/resources/defaultcontrolsxml/15-tabs.xml", "start");
- + nifty.fromXml("src/main/resources/defaultcontrolsxml/16-button.xml", "start");
- LwjglInitHelper.renderLoop(nifty, null);
- LwjglInitHelper.destroy();
- diff --git a/nifty-examples/src/main/resources/defaultcontrolsxml/16-button.xml b/nifty-examples/src/main/resources/defaultcontrolsxml/16-button.xml
- new file mode 100755
- index 0000000..a7ed755
- --- /dev/null
- +++ b/nifty-examples/src/main/resources/defaultcontrolsxml/16-button.xml
- @@ -0,0 +1,24 @@
- +<?xml version="1.0" encoding="UTF-8"?>
- +<nifty xsi:schemaLocation="http://nifty-gui.sourceforge.net/nifty-1.3.xsd"
- + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://nifty-gui.sourceforge.net/nifty-1.3.xsd">
- + <useStyles filename="nifty-default-styles.xml" />
- + <useControls filename="nifty-default-controls.xml" />
- + <screen id="start">
- + <layer id="layer" childLayout="center" backgroundColor="#003f">
- + <panel id="buttons" childLayout="horizontal" valign="center" align="center" width="50%" height="50%">
- + <panel id="buttonOverPanel" padding="15px" childLayout="center">
- + <control name="button" id="buttonOver" label="Text Over" image="defaultcontrols/yin.png"
- + width="80px" height="80px" buttonLayout="textOver" />
- + </panel>
- + <panel id="buttonAbovePanel" padding="15px" childLayout="center">
- + <control name="button" id="buttonAbove" label="Text above" image="defaultcontrols/yang.png"
- + width="80px" height="80px" buttonLayout="textAbove" />
- + </panel>
- + <panel id="buttonBelowPanel" padding="15px" childLayout="center">
- + <control name="button" id="buttonBelow" label="Text Below" image="defaultcontrols/yin.png"
- + width="80px" height="80px" buttonLayout="textBelow" />
- + </panel>
- + </panel>
- + </layer>
- + </screen>
- +</nifty>
- \ No newline at end of file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement