Advertisement
Guest User

nifty-examples patch

a guest
Jan 17th, 2012
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.02 KB | None | 0 0
  1. 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
  2. old mode 100644
  3. new mode 100755
  4. index 27ea755..1ff7085
  5. --- a/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrols/ControlsDemo.java
  6. +++ b/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrols/ControlsDemo.java
  7. @@ -20,6 +20,7 @@
  8. import de.lessvoid.nifty.controls.dropdown.builder.DropDownBuilder;
  9. import de.lessvoid.nifty.controls.label.builder.LabelBuilder;
  10. import de.lessvoid.nifty.controls.slider.builder.SliderBuilder;
  11. +import de.lessvoid.nifty.examples.defaultcontrols.buttons.ButtonsControlDialogDefinition;
  12. import de.lessvoid.nifty.examples.defaultcontrols.chatcontrol.ChatControlDialogDefinition;
  13. import de.lessvoid.nifty.examples.defaultcontrols.common.CommonBuilders;
  14. import de.lessvoid.nifty.examples.defaultcontrols.common.DialogPanelControlDefinition;
  15. @@ -78,6 +79,7 @@
  16. TextFieldDialogControlDefinition.register(nifty);
  17. SliderAndScrollbarDialogControlDefinition.register(nifty);
  18. DragAndDropDialogDefinition.register(nifty);
  19. + ButtonsControlDialogDefinition.register(nifty);
  20.  
  21. createIntroScreen(nifty);
  22. createDemoScreen(nifty);
  23. @@ -237,7 +239,8 @@
  24. "menuButtonChatControl", "dialogChatControl",
  25. "menuButtonMessageBox", "dialogMessageBox",
  26. "menuButtonTabsControl", "dialogTabsControl",
  27. - "menuButtonTreeBoxControl", "dialogTreeBoxControl"
  28. + "menuButtonTreeBoxControl", "dialogTreeBoxControl",
  29. + "menuButtonButtonsControl", "dialogButtonsControl"
  30. ));
  31. inputMapping("de.lessvoid.nifty.input.mapping.DefaultInputMapping"); // this will enable Keyboard events for the screen controller
  32. layer(new LayerBuilder("layer") {{
  33. @@ -283,6 +286,8 @@
  34. panel(builders.hspacer("10px"));
  35. 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! :)"));
  36. panel(builders.hspacer("10px"));
  37. + control(MenuButtonControlDefinition.getControlBuilderUser("menuButtonButtonsControl", "ButtonsControl", "Button control demonstration\n\nSimply show the button control with possibility to change text/image layout"));
  38. + panel(builders.hspacer("10px"));
  39. }});
  40. panel(new PanelBuilder("dialogParent") {{
  41. childLayoutOverlay();
  42. @@ -299,6 +304,7 @@
  43. control(new ControlBuilder("dialogMessageBox", MessageBoxDialogDefinition.NAME));
  44. control(new ControlBuilder("dialogTabsControl", TabsControlDialogDefinition.NAME));
  45. control(new ControlBuilder("dialogTreeBoxControl", TreeBoxControlDialogDefinition.NAME));
  46. + control(new ControlBuilder("dialogButtonsControl", ButtonsControlDialogDefinition.NAME));
  47. }});
  48. }});
  49. layer(new LayerBuilder() {{
  50. 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
  51. new file mode 100644
  52. index 0000000..92bfaa1
  53. --- /dev/null
  54. +++ b/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrols/buttons/ButtonsControlDialogController.java
  55. @@ -0,0 +1,103 @@
  56. +package de.lessvoid.nifty.examples.defaultcontrols.buttons;
  57. +
  58. +import java.util.Properties;
  59. +
  60. +import de.lessvoid.nifty.Nifty;
  61. +import de.lessvoid.nifty.NiftyEventSubscriber;
  62. +import de.lessvoid.nifty.controls.Button;
  63. +import de.lessvoid.nifty.controls.Controller;
  64. +import de.lessvoid.nifty.controls.DropDown;
  65. +import de.lessvoid.nifty.controls.DropDownSelectionChangedEvent;
  66. +import de.lessvoid.nifty.controls.RadioButton;
  67. +import de.lessvoid.nifty.controls.RadioButtonStateChangedEvent;
  68. +import de.lessvoid.nifty.controls.button.ButtonControl.ButtonLayout;
  69. +import de.lessvoid.nifty.elements.Element;
  70. +import de.lessvoid.nifty.examples.defaultcontrols.common.CommonBuilders;
  71. +import de.lessvoid.nifty.input.NiftyInputEvent;
  72. +import de.lessvoid.nifty.render.NiftyImage;
  73. +import de.lessvoid.nifty.screen.Screen;
  74. +import de.lessvoid.nifty.spi.render.RenderImage;
  75. +import de.lessvoid.xml.xpp3.Attributes;
  76. +
  77. +/**
  78. + * The TabsControlDialogController registers a new control with Nifty
  79. + * that represents the whole Dialog. This gives us later an appropriate
  80. + * ControlBuilder to actual construct the Dialog (as a control).
  81. + * @author ractoc
  82. + */
  83. +public class ButtonsControlDialogController implements Controller {
  84. + private static CommonBuilders builders = new CommonBuilders();
  85. + private Button button;
  86. + private DropDown<ButtonLayout> layoutDropDown;
  87. + private RadioButton yinRadio;
  88. + private RadioButton yangRadio;
  89. + private Nifty nifty;
  90. +
  91. + @Override
  92. + public void bind(
  93. + final Nifty nifty,
  94. + final Screen screen,
  95. + final Element element,
  96. + final Properties parameter,
  97. + final Attributes controlDefinitionAttributes) {
  98. + this.nifty = nifty;
  99. + button = screen.findNiftyControl(ButtonsControlDialogDefinition.BUTTON_ID, Button.class);
  100. + layoutDropDown = screen.findNiftyControl(ButtonsControlDialogDefinition.LAYOUTDROPDOWN_ID, DropDown.class);
  101. + yinRadio = screen.findNiftyControl(ButtonsControlDialogDefinition.IMAGERADIO_YIN_ID, RadioButton.class);
  102. + yangRadio = screen.findNiftyControl(ButtonsControlDialogDefinition.IMAGERADIO_YANG_ID, RadioButton.class);
  103. + }
  104. +
  105. + @NiftyEventSubscriber(id = ButtonsControlDialogDefinition.LAYOUTDROPDOWN_ID)
  106. + public void onDropDownSelectionChanged(final String id, final DropDownSelectionChangedEvent<ButtonLayout> event) {
  107. + ButtonLayout layout = event.getSelection();
  108. + button.setButtonLayout(layout);
  109. + }
  110. +
  111. + @NiftyEventSubscriber(id = ButtonsControlDialogDefinition.IMAGERADIO_YIN_ID)
  112. + public void onYinRadioChanged(final String id, final RadioButtonStateChangedEvent event) {
  113. + if (!event.isSelected()) {
  114. + return;
  115. + }
  116. + NiftyImage image = nifty.createImage("defaultcontrols/yin.png", true);
  117. + button.setImage(image);
  118. + }
  119. +
  120. + @NiftyEventSubscriber(id = ButtonsControlDialogDefinition.IMAGERADIO_YANG_ID)
  121. + public void onYangRadioChanged(final String id, final RadioButtonStateChangedEvent event) {
  122. + if (!event.isSelected()) {
  123. + return;
  124. + }
  125. + NiftyImage image = nifty.createImage("defaultcontrols/yang.png", true);
  126. + button.setImage(image);
  127. + }
  128. + @NiftyEventSubscriber(id = ButtonsControlDialogDefinition.IMAGERADIO_LOGO_ID)
  129. + public void onLogoRadioChanged(final String id, final RadioButtonStateChangedEvent event) {
  130. + if (!event.isSelected()) {
  131. + return;
  132. + }
  133. + NiftyImage image = nifty.createImage("defaultcontrols/nifty-logo.png", true);
  134. + button.setImage(image);
  135. + }
  136. +
  137. + @Override
  138. + public void init(final Properties parameter, final Attributes controlDefinitionAttributes) {
  139. + yinRadio.select();
  140. + layoutDropDown.addItem(ButtonLayout.TEXT_OVER);
  141. + layoutDropDown.addItem(ButtonLayout.TEXT_ABOVE);
  142. + layoutDropDown.addItem(ButtonLayout.TEXT_BELOW);
  143. + layoutDropDown.selectItem(ButtonLayout.TEXT_OVER);
  144. + }
  145. +
  146. + @Override
  147. + public void onStartScreen() {
  148. + }
  149. +
  150. + @Override
  151. + public void onFocus(final boolean getFocus) {
  152. + }
  153. +
  154. + @Override
  155. + public boolean inputEvent(final NiftyInputEvent inputEvent) {
  156. + return false;
  157. + }
  158. +}
  159. 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
  160. new file mode 100644
  161. index 0000000..00f4b7d
  162. --- /dev/null
  163. +++ b/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrols/buttons/ButtonsControlDialogDefinition.java
  164. @@ -0,0 +1,104 @@
  165. +package de.lessvoid.nifty.examples.defaultcontrols.buttons;
  166. +
  167. +import de.lessvoid.nifty.Nifty;
  168. +import de.lessvoid.nifty.builder.ControlBuilder;
  169. +import de.lessvoid.nifty.builder.ControlDefinitionBuilder;
  170. +import de.lessvoid.nifty.builder.PanelBuilder;
  171. +import de.lessvoid.nifty.controls.button.builder.ButtonBuilder;
  172. +import de.lessvoid.nifty.controls.dropdown.builder.DropDownBuilder;
  173. +import de.lessvoid.nifty.controls.radiobutton.builder.RadioButtonBuilder;
  174. +import de.lessvoid.nifty.controls.radiobutton.builder.RadioGroupBuilder;
  175. +import de.lessvoid.nifty.examples.defaultcontrols.common.CommonBuilders;
  176. +import de.lessvoid.nifty.examples.defaultcontrols.common.DialogPanelControlDefinition;
  177. +
  178. +/**
  179. + * The ChatControlDialogRegister registers a new control (the whole ChatControlDialog) with
  180. + * Nifty. We can later simply generate the whole dialog using a control with the given NAME.
  181. + *
  182. + * @author void
  183. + */
  184. +public class ButtonsControlDialogDefinition {
  185. + public static String NAME = "buttonsControlDialogControl";
  186. + public static final String MAINPANEL_ID = "mainPanel";
  187. + public static final String BUTTON_ID = "Button";
  188. + public static final String CONTROLPANEL_ID = "ControlPanel";
  189. + public static final String LAYOUTDROPDOWN_ID = "LayoutDropDown";
  190. + public static final String IMAGERADIO_GROUP_ID = "ImageRadioGroup";
  191. + public static final String IMAGERADIO_YIN_ID = "ImageRadioYin";
  192. + public static final String IMAGERADIO_YANG_ID = "ImageRadioYang";
  193. + public static final String IMAGERADIO_LOGO_ID = "ImageRadioLogo";
  194. + private static CommonBuilders builders = new CommonBuilders();
  195. +
  196. + public static void register(final Nifty nifty) {
  197. + new ControlDefinitionBuilder(NAME) {
  198. + {
  199. + controller(new ButtonsControlDialogController());
  200. + control(new ControlBuilder(DialogPanelControlDefinition.NAME) {
  201. + {
  202. + panel(new PanelBuilder(MAINPANEL_ID) {
  203. + {
  204. + childLayoutHorizontal();
  205. + control(new ButtonBuilder(BUTTON_ID) {
  206. + {
  207. + width(pixels(60));
  208. + height(pixels(60));
  209. + label("ButtonLabel");
  210. + image("defaultcontrols/yin.png");
  211. + }
  212. + });
  213. + panel(builders.hspacer("20px"));
  214. + panel(new PanelBuilder(CONTROLPANEL_ID) {
  215. + {
  216. + childLayoutVertical();
  217. + width("250px");
  218. + panel(new PanelBuilder() {
  219. + {
  220. + childLayoutHorizontal();
  221. + control(builders.createLabel("Layout:", "100px"));
  222. + panel(builders.hspacer("5px"));
  223. + control(new DropDownBuilder(LAYOUTDROPDOWN_ID) {
  224. + {
  225. + }
  226. + });
  227. + }
  228. + });
  229. + panel(builders.vspacer());
  230. + panel(new PanelBuilder() {
  231. + {
  232. + childLayoutHorizontal();
  233. + control(builders.createLabel("Image:", "100px"));
  234. + control(new RadioGroupBuilder(IMAGERADIO_GROUP_ID));
  235. + control(new RadioButtonBuilder(IMAGERADIO_YIN_ID) {
  236. + {
  237. + group(IMAGERADIO_GROUP_ID);
  238. + }
  239. + });
  240. + control(builders.createShortLabel("Yin"));
  241. + panel(builders.hspacer("5px"));
  242. + control(new RadioButtonBuilder(IMAGERADIO_YANG_ID) {
  243. + {
  244. + group(IMAGERADIO_GROUP_ID);
  245. + }
  246. + });
  247. + control(builders.createShortLabel("Yang"));
  248. + panel(builders.hspacer("5px"));
  249. + control(new RadioButtonBuilder(IMAGERADIO_LOGO_ID) {
  250. + {
  251. + group(IMAGERADIO_GROUP_ID);
  252. + }
  253. + });
  254. + control(builders.createShortLabel("Nifty Logo"));
  255. +
  256. + }
  257. + });
  258. +
  259. + }
  260. + });
  261. + }
  262. + });
  263. + }
  264. + });
  265. + }
  266. + }.registerControlDefintion(nifty);
  267. + }
  268. +}
  269. 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
  270. old mode 100644
  271. new mode 100755
  272. index 1e6369b..0671c0e
  273. --- a/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrolsxml/DefaultControlsXmlMain.java
  274. +++ b/nifty-examples/src/main/java/de/lessvoid/nifty/examples/defaultcontrolsxml/DefaultControlsXmlMain.java
  275. @@ -32,7 +32,8 @@
  276. // nifty.fromXml("src/main/resources/defaultcontrolsxml/12-slider.xml", "start");
  277. // nifty.fromXml("src/main/resources/defaultcontrolsxml/13-textfield.xml", "start");
  278. // nifty.fromXml("src/main/resources/defaultcontrolsxml/14-window.xml", "start");
  279. - nifty.fromXml("src/main/resources/defaultcontrolsxml/15-tabs.xml", "start");
  280. +// nifty.fromXml("src/main/resources/defaultcontrolsxml/15-tabs.xml", "start");
  281. + nifty.fromXml("src/main/resources/defaultcontrolsxml/16-button.xml", "start");
  282.  
  283. LwjglInitHelper.renderLoop(nifty, null);
  284. LwjglInitHelper.destroy();
  285. diff --git a/nifty-examples/src/main/resources/defaultcontrolsxml/16-button.xml b/nifty-examples/src/main/resources/defaultcontrolsxml/16-button.xml
  286. new file mode 100755
  287. index 0000000..a7ed755
  288. --- /dev/null
  289. +++ b/nifty-examples/src/main/resources/defaultcontrolsxml/16-button.xml
  290. @@ -0,0 +1,24 @@
  291. +<?xml version="1.0" encoding="UTF-8"?>
  292. +<nifty xsi:schemaLocation="http://nifty-gui.sourceforge.net/nifty-1.3.xsd"
  293. + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://nifty-gui.sourceforge.net/nifty-1.3.xsd">
  294. + <useStyles filename="nifty-default-styles.xml" />
  295. + <useControls filename="nifty-default-controls.xml" />
  296. + <screen id="start">
  297. + <layer id="layer" childLayout="center" backgroundColor="#003f">
  298. + <panel id="buttons" childLayout="horizontal" valign="center" align="center" width="50%" height="50%">
  299. + <panel id="buttonOverPanel" padding="15px" childLayout="center">
  300. + <control name="button" id="buttonOver" label="Text Over" image="defaultcontrols/yin.png"
  301. + width="80px" height="80px" buttonLayout="textOver" />
  302. + </panel>
  303. + <panel id="buttonAbovePanel" padding="15px" childLayout="center">
  304. + <control name="button" id="buttonAbove" label="Text above" image="defaultcontrols/yang.png"
  305. + width="80px" height="80px" buttonLayout="textAbove" />
  306. + </panel>
  307. + <panel id="buttonBelowPanel" padding="15px" childLayout="center">
  308. + <control name="button" id="buttonBelow" label="Text Below" image="defaultcontrols/yin.png"
  309. + width="80px" height="80px" buttonLayout="textBelow" />
  310. + </panel>
  311. + </panel>
  312. + </layer>
  313. + </screen>
  314. +</nifty>
  315. \ No newline at end of file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement