GUI back-end plug-in: work in progress, testers welcome.

    • sharkbitefischer schrieb:

      new version has problems with pnb. the check boxes on the old and the new pnb won't work with the new rwgui.
      Thanks for the report, @sharkbitefischer. In fact, the radio boxes do work but, as two image files are missing from the ZIP, nothing is shown in them and you cannot see it. I'll upload a complete set of images ASAP.
      __________
      My plug-ins: Planks 'n Beams, GPS, UPS, Weather control, Plugin Central, RWGui (GUI back-end), Bank (Money back end)
    • hallo das Plugin hat bei mir Fehler aus gegeben

      ich schick dir die Log Datei über pn

      Spoiler anzeigen

      java.io.FileNotFoundException: /home/zap12512/g36489/rising-world/plugins/rwgui/assets/arrowDown.png
      at net.risingworld.api.utils.FileInformation.loadFromFile(SourceFile:81)
      at net.risingworld.api.utils.FileInformation.<init>(SourceFile:47)
      at net.risingworld.api.utils.FileInformation.<init>(SourceFile:42)
      at net.risingworld.api.utils.ImageInformation.<init>(SourceFile:49)
      at com.vistamaresoft.rwgui.RWGui.setImage(RWGui.java:174)
      at com.vistamaresoft.rwgui.GuiVerticalLayout.<init>(GuiVerticalLayout.java:87)
      at com.vistamaresoft.rwgui.GuiModalWindow.<init>(GuiModalWindow.java:103)
      at com.vistamaresoft.rwgui.GuiDialogueBox.<init>(GuiDialogueBox.java:49)
      at de.chaoswg.MenüFollow.<init>(MenüFollow.java:24)
      at de.chaoswg.NPCsKEYs.lambda$onPlayerKeyEvent$0(NPCsKEYs.java:58)
      at G.c.a(SourceFile:2980)
      at G.c.messageReceived(SourceFile:189)
      at de.jiw.network.server.core.ServerTcpChannel.onMessageReceived(ServerTcpChannel.java:97)
      at de.jiw.network.server.core.AbstractServerChannel.dispatchTCP(AbstractServerChannel.java:62)
      at de.jiw.network.server.session.TcpSessionHandler.channelRead0(TcpSessionHandler.java:79)
      at de.jiw.network.server.session.TcpSessionHandler.channelRead0(TcpSessionHandler.java:15)
      at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284)
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284)
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
      at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:38)
      at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:353)
      at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:66)
      at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
      at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
      at java.lang.Thread.run(Thread.java:748)
      java.io.FileNotFoundException: /home/zap12512/g36489/rising-world/plugins/rwgui/assets/arrowUp.png
      at net.risingworld.api.utils.FileInformation.loadFromFile(SourceFile:81)
      at net.risingworld.api.utils.FileInformation.<init>(SourceFile:47)
      at net.risingworld.api.utils.FileInformation.<init>(SourceFile:42)
      at net.risingworld.api.utils.ImageInformation.<init>(SourceFile:49)
      at com.vistamaresoft.rwgui.RWGui.setImage(RWGui.java:174)
      at com.vistamaresoft.rwgui.GuiVerticalLayout.<init>(GuiVerticalLayout.java:93)
      at com.vistamaresoft.rwgui.GuiModalWindow.<init>(GuiModalWindow.java:103)
      at com.vistamaresoft.rwgui.GuiDialogueBox.<init>(GuiDialogueBox.java:49)
      at de.chaoswg.MenüFollow.<init>(MenüFollow.java:24)
      at de.chaoswg.NPCsKEYs.lambda$onPlayerKeyEvent$0(NPCsKEYs.java:58)
      at G.c.a(SourceFile:2980)
      at G.c.messageReceived(SourceFile:189)
      at de.jiw.network.server.core.ServerTcpChannel.onMessageReceived(ServerTcpChannel.java:97)
      at de.jiw.network.server.core.AbstractServerChannel.dispatchTCP(AbstractServerChannel.java:62)
      at de.jiw.network.server.session.TcpSessionHandler.channelRead0(TcpSessionHandler.java:79)
      at de.jiw.network.server.session.TcpSessionHandler.channelRead0(TcpSessionHandler.java:15)
      at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284)
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284)
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
      at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:38)
      at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:353)
      at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:66)
      at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
      at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
      at java.lang.Thread.run(Thread.java:748)
      java.io.FileNotFoundException: /home/zap12512/g36489/rising-world/plugins/rwgui/assets/cross.png
      at net.risingworld.api.utils.FileInformation.loadFromFile(SourceFile:81)
      at net.risingworld.api.utils.FileInformation.<init>(SourceFile:47)
      at net.risingworld.api.utils.FileInformation.<init>(SourceFile:42)
      at net.risingworld.api.utils.ImageInformation.<init>(SourceFile:49)
      at com.vistamaresoft.rwgui.RWGui.setImage(RWGui.java:174)
      at com.vistamaresoft.rwgui.GuiTitleBar.<init>(GuiTitleBar.java:76)
      at com.vistamaresoft.rwgui.GuiModalWindow.<init>(GuiModalWindow.java:110)
      at com.vistamaresoft.rwgui.GuiDialogueBox.<init>(GuiDialogueBox.java:49)
      at de.chaoswg.MenüFollow.<init>(MenüFollow.java:24)
      at de.chaoswg.NPCsKEYs.lambda$onPlayerKeyEvent$0(NPCsKEYs.java:58)
      at G.c.a(SourceFile:2980)
      at G.c.messageReceived(SourceFile:189)
      at de.jiw.network.server.core.ServerTcpChannel.onMessageReceived(ServerTcpChannel.java:97)
      at de.jiw.network.server.core.AbstractServerChannel.dispatchTCP(AbstractServerChannel.java:62)
      at de.jiw.network.server.session.TcpSessionHandler.channelRead0(TcpSessionHandler.java:79)
      at de.jiw.network.server.session.TcpSessionHandler.channelRead0(TcpSessionHandler.java:15)
      at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284)
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284)
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
      at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:38)
      at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:353)
      at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:66)
      at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
      at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
      at java.lang.Thread.run(Thread.java:748)



      das Fenster blieb sichtbar obwohl es eigentlich schon zu war

      und das X zum Fenster schließen war auch nicht da
    • Hi @Ludy; the origin of the error seems an incomplete installation; either the rwgui/assets/ folder is missing or it does not contains all the images.

      I have re-downloaded the latest plug-in file (rwgui_0_5_1.zip)to check it and it contains all the needed files in the correct places; so, it is a matter of uploading to the server all the plug-in files or, if you have access to a console on the host, simply unZIPping the plug-in file directly in the server plugins directory.

      Please let me know if I can further help you.
      __________
      My plug-ins: Planks 'n Beams, GPS, UPS, Weather control, Plugin Central, RWGui (GUI back-end), Bank (Money back end)
    • Miwarre schrieb:

      It is the same for me: I have two back-end plug-ins out since a year and a half and nobody else uses them but myself (RW-Gui even has its source code published since long).

      in this sense
      How about several windows from about 5months ago I had so my problems.
      I have a lot of information and options to display / offer in different windows. Where I z.b. want to use several subgroups and staggered windows.
      I think there were plausible plausibility with the InputText which should
      be fixed if I open another window and hide the previous one.

      If you could make a small example of multiple and windowed windows, that would help me a lot. :thumbsup:

      ###

      in diesem sinne
      wie sieht es mit mehreren Fenstern aus vor ca. 5Monaten hatte ich damit so meine Probleme.
      Ich habe vor eine Menge an Informationen und Optionen in verschiedenen Fenstern anzuzeige/anzubieten. Wobei ich z.b. mehrere untergruppen und gestaffelte Fenster benutzen möchte.
      Ich glaube es gab damals plrobleme mit dem InputText was aber gefixt sein sollte, wenn ich von einem Fenster ein anderes Öffne und das vorheriege ausblende.

      Wenn du ein kleines Beispiel für Mehrere und Ferschachtelte Fenster machen könntest würde mir das sehr helfen.
    • noci schrieb:

      How about several windows from about 5months ago I had so my problems.
      I have a lot of information and options to display / offer in different windows. Where I z.b. want to use several subgroups and staggered windows.
      I think there were plausible plausibility with the InputText which should
      be fixed if I open another window and hide the previous one.

      If you could make a small example of multiple and windowed windows, that would help me a lot.
      Sorry @noci, I forgot about this request of yours, I deeply apologise ;(

      If it is still current, would you mind elaborating a little and perhaps drafting an actual example of what you need to achieve? Your description is fairly general. Thanks.
      __________
      My plug-ins: Planks 'n Beams, GPS, UPS, Weather control, Plugin Central, RWGui (GUI back-end), Bank (Money back end)
    • Hey are they some instructions on how this GUI can execute code are do you have to set it to call other routines or classes?

      I get an error when I tried to put up a simple database lookup. Mind that I am a noob programmer so it is me not this plugin. I just want to call a few routines and display information in the GUI

      Oh by the way i never installed PNB on my server until i tried this backend and PNB now works great. nice in all regards.
    • Miwarre schrieb:

      @angriff: there is plenty of documentation; look in the top post, you'll find the Java docs, a sample client plug-in and the link to the sources on github. I believe it should be enough to get you started.
      Yes thanks I got that, it is pretty advanced I will have to read up/study on java a bit more. I am looking for a way to interface a yes no question and/or display some stats from a database but the structure is unfamiliar to me. So does the main code that executes the db reads get put into the case1 case2 area or is that just a call?
    • ??? RW-Gui has nothing to do with data base management

      angriff schrieb:

      the structure is unfamiliar to me
      Which structure?

      angriff schrieb:

      So does the main code that executes the db reads get put into the case1 case2 area or is that just a call?
      DB read? case1 case2? I cannot understand what you are referring to.

      angriff schrieb:

      I will have to read up/study on java a bit more
      This is highly advisable! To program in a programming language, studying it to some proficiency helps greatly!
      __________
      My plug-ins: Planks 'n Beams, GPS, UPS, Weather control, Plugin Central, RWGui (GUI back-end), Bank (Money back end)
    • Miwarre schrieb:

      ??? RW-Gui has nothing to do with data base management

      angriff schrieb:

      the structure is unfamiliar to me
      Which structure?

      angriff schrieb:

      So does the main code that executes the db reads get put into the case1 case2 area or is that just a call?
      DB read? case1 case2? I cannot understand what you are referring to.

      angriff schrieb:

      I will have to read up/study on java a bit more
      This is highly advisable! To program in a programming language, studying it to some proficiency helps greatly!
      ROFL


      ok looking for advice how to communicate here..

      I have a DB capture/write/read with display function that works fine if I send it to chat. However I wanted to display it slicker in a GUI instead. What is the best method to call this using your GUI example as a teaching start point? If you dont have the time I understand. I will plug along.

      Unfortunately not everyone is as proficient as the career java writers that write some of these plugin but it does not mean we lowly beginners cannot have fun, albeit sometimes frustrating ourselves. So a lecture on studying is not highly advisable but a natural occurrence if one is to begin. Saying a poor person needs money is somewhat redundant. :|
    • @angriff: well, can you compile, install into RW and run the dialogue box example plug-in?

      If yes, then it has all the elements you seem to need:
      • define your dialogue box class following the MyDlgBox example (or even simply reusing and modifying it)
      • replace the fixed, hard-coded texts of the example with the data from your DB query
      • replace the fancy, multifarious layout (used to show different possibilities) with one suiting your data -- which you know in their structure and contents
      • once you have your DB query result, create and show the dialogue box as shown at the end of the SampleDlgBox class


      The example is heavily commented. As English is not my mother tongue (speaking of learned languages... :D ), comments may contain English errors and non-idiomatic expressions, but they should be comprehensible nevertheless.

      If you are stuck in finding a way to pass a variable contents (the result of your DB query) to the dialogue box to show, the answer might be different if the dialogue box, once created with some texts, will no longer change (for instance, just show one DB row) or if you want to page through multiple DB rows.

      In the first case, you may simply pass the DB result row to the dialogue box constructor, for it to extract the needed data and put into the dialogue box elements.

      In the second case, which is more complex, you need to add to your dialogue box class:
      • some clickable elements (acting as buttons) to page to the next / prev. row;
      • methods to receive new data, placing them into the relevant dialogue box GUI elements;
      and to the class using the dialogue box:
      • a callback to receive the "Next row"/"Prev. row" commands, retrieve the required result row and send it back to the dialogue box via the above methods
      As you see, it is more complex, but it can be done 8o .
      __________
      My plug-ins: Planks 'n Beams, GPS, UPS, Weather control, Plugin Central, RWGui (GUI back-end), Bank (Money back end)
    • Benutzer online 1

      1 Besucher