Fengui examples

I am having the hardest time getting the fenggui examples to run. I go to the following site and pull down the code but I cant get them to run. I am a total nube the fenggui so if someone can point me in the right direction as to how to run these that would be great!

http://www.fenggui.org/doku.php?id=doc:examples:examples

This is kind of a question for the FengGUI forums isn't it?



But to point you in the right direction; you will need to create an 'example runner'.  Either use LWJGL or JOGL (make sure they are the right versions for FengGUI) then simply start up a basic rendering loop and add the FengGUI stuff…  Check out the (FengGUI) HelloWorld example for a JOGL implementation.

Well since I use it anyway in my project, I think it won't harm if i simply post my characterSelection Screen. (Note I use a Renderpass, because else this would be below the Renderer.QUEUE_ORTHO that is used for my background.





package RenderPasses;

import java.util.ArrayList;
import java.util.ListIterator;

import org.fenggui.Button;
import org.fenggui.Display;
import org.fenggui.FengGUI;
import org.fenggui.Label;
import org.fenggui.TextEditor;
import org.fenggui.composite.Window;
import org.fenggui.event.ButtonPressedEvent;
import org.fenggui.event.IButtonPressedListener;
import org.fenggui.util.Point;

import Engine.ClientConnection;
import Interface.Console;
import Interface.util.FengJMEInputHandler;
import LoginServerClient.PendingClient.AdditionPlayerData;
import LoginServerClient.PendingClient.DeleteCharacter;
import LoginServerClient.PendingClient.NewCharacter;
import LoginServerClient.PendingClient.PlayerData;
import LoginServerClient.PendingClient.RequestAdditionData;
import LoginServerClient.PendingClient.SelectCharacter;
import RenderPasses.Manager.RenderPassManager;

import com.jme.input.InputHandler;
import com.jme.renderer.Renderer;
import com.jme.renderer.pass.RenderPass;
import com.jme.system.DisplaySystem;

public class CharacterSelection extends RenderPass{
   static ArrayList<Button> removeonredraw = new ArrayList<Button>();
   private static InputHandler input;
   static Display fengguidisplay;
   private static int xpercent;
   private static int ypercent;
   private static int buttoncount = 0;
   static Label name;
   private static Label credits;
   private static Label Mapname;
   private static Label MapDesription;
   private static Label Status;
   static int selectedid = -1;
   private static Label IsFemale;
   private static Label IsAdmin;
   private static Label Rank;
   private static Label Rankpoints;
   static Window selection;
   static Window creation;
   static Window delete;
   static Label deletemessage;
   
   static public String GetName(){
      return "Character Selection Pass";
   }
   
   CharacterSelection(){
      xpercent = DisplaySystem.getDisplaySystem().getWidth()/100;
      ypercent = DisplaySystem.getDisplaySystem().getHeight()/100;
      fengguidisplay = new org.fenggui.Display(new org.fenggui.binding.render.lwjgl.LWJGLBinding());
      input = new FengJMEInputHandler(fengguidisplay);
      
      BuildSelectionGUI();
      BuildCreationGUI();
      BuildAreyousure();
      
      this.setEnabled(false);
   }
   
   private void BuildAreyousure() {
      delete = FengGUI.createWindow(fengguidisplay,false,false,false,false);
      delete.setTitle("Are you sure?");
      delete.setPosition(new Point(xpercent*30,ypercent*35));
      delete.setSize(xpercent*40,ypercent*15);
      delete.setResizable(false);
      delete.setMovable(false);
      delete.setVisible(false);
      
      deletemessage = FengGUI.createLabel(delete);
      deletemessage.setPosition(new Point(xpercent * 5,ypercent * 5));
      deletemessage.setSize(xpercent * 40, ypercent*10);
      deletemessage.setText("Missing");
      
      Button yes = FengGUI.createButton(delete);
      yes.setText("Yes");
      yes.setSize(xpercent * 20, ypercent * 5);
      yes.setPosition(new Point(xpercent * 20,ypercent * 0));
      yes.addButtonPressedListener(new IButtonPressedListener(){
         @Override
         public void buttonPressed(ButtonPressedEvent arg0) {
            ListIterator<Button> iter = removeonredraw.listIterator();
            Button cur;
            while(iter.hasNext()){
               cur = iter.next();
               Console.println("Name: " +cur.getText() + "-" + name.getText());
               if (("Name: " + cur.getText()).equals(name.getText())){
                  selection.removeWidget(cur);
               }
            }
            delete.setVisible(false);
            DeleteCharacter del = new DeleteCharacter();
            del.setUserid(selectedid);
            ClientConnection.SendMessageToServer(del);
            selection.setVisible(true);
         }
      });
      
      Button no = FengGUI.createButton(delete);
      no.setText("No");
      no.setSize(xpercent * 20, ypercent * 5);
      no.setPosition(new Point(xpercent * 0,ypercent * 0));
      no.addButtonPressedListener(new IButtonPressedListener(){
         @Override
         public void buttonPressed(ButtonPressedEvent arg0) {
            delete.setVisible(false);
            selection.setVisible(true);
         }
      });
      
      delete.layout();
   }
   
   private void BuildCreationGUI() {
      creation = FengGUI.createWindow(fengguidisplay,false,false,false,false);
      creation.setTitle("Create a Character");
      creation.setSize(xpercent*100,ypercent*100);
      creation.setResizable(false);
      creation.setMovable(false);
      creation.setVisible(false);
      
      final TextEditor createname = FengGUI.createTextField(creation);
      createname.setSize(xpercent*10,ypercent*10);
      createname.setPosition(new Point(xpercent*5,ypercent*10));
      createname.setEmptyText("Enter a Name");
      
      Button createnow = FengGUI.createButton(creation);
      createnow.setText("Create it!");
      createnow.setSize(xpercent * 20, ypercent * 5);
      createnow.setPosition(new Point(xpercent * 0,ypercent * 0));
      createnow.addButtonPressedListener(new IButtonPressedListener(){
         @Override
         public void buttonPressed(ButtonPressedEvent arg0) {
            NewCharacter create = new NewCharacter();
            create.setName(createname.getText());
            ClientConnection.SendMessageToServer(create);
            creation.setVisible(false);
         }
      });
   }

   private void BuildSelectionGUI() {
      selection = FengGUI.createWindow(fengguidisplay,false,false,false,false);
      selection.setTitle("Select a Character");
      selection.setSize(xpercent*100,ypercent*100);
      selection.setResizable(false);
      selection.setMovable(false);
         
      name = FengGUI.createLabel(selection,"Name:


");
      name.setSize(xpercent*60,ypercent*20);
      name.setPosition(new Point(xpercent*40,ypercent*80));
         
      credits = FengGUI.createLabel(selection,"Credits:
");
      credits.setSize(xpercent*60,ypercent*20);
      credits.setPosition(new Point(xpercent*40,ypercent*75));
         
      Mapname = FengGUI.createLabel(selection,"Mapname:
");
      Mapname.setSize(xpercent*60,ypercent*20);
      Mapname.setPosition(new Point(xpercent*40,ypercent*70));
      
      MapDesription = FengGUI.createLabel(selection,"MapDesription:
");
      MapDesription.setSize(xpercent*60,ypercent*20);
      MapDesription.setPosition(new Point(xpercent*40,ypercent*65));
      
      IsFemale = FengGUI.createLabel(selection,"IsFemale:
");
      IsFemale.setSize(xpercent*60,ypercent*20);
      IsFemale.setPosition(new Point(xpercent*40,ypercent*60));
      
      IsAdmin = FengGUI.createLabel(selection,"IsAdmin:
");
      IsAdmin.setSize(xpercent*60,ypercent*20);
      IsAdmin.setPosition(new Point(xpercent*40,ypercent*55));
      
      Rank = FengGUI.createLabel(selection,"Rank:
");
      Rank.setSize(xpercent*60,ypercent*20);
      Rank.setPosition(new Point(xpercent*40,ypercent*50));
      
      Rankpoints = FengGUI.createLabel(selection,"Credits:
");
      Rankpoints.setSize(xpercent*60,ypercent*20);
      Rankpoints.setPosition(new Point(xpercent*40,ypercent*45));
      
      Status = FengGUI.createLabel(selection,"Status:
");
      Status.setSize(xpercent*60,ypercent*20);
      Status.setPosition(new Point(xpercent*40,ypercent*40));
      
      Button create = FengGUI.createButton(selection);
      create.setText("Create character");
      create.setSize(xpercent * 40, ypercent * 10);
      create.setPosition(new Point(xpercent * 60,ypercent * 0));
      create.addButtonPressedListener(new IButtonPressedListener(){
         @Override
         public void buttonPressed(ButtonPressedEvent arg0) {
            selection.setVisible(false);
            creation.setVisible(true);
         }
      });
      
      final Button deletebutton = FengGUI.createButton(selection);
      deletebutton.setText("Delecte selected character");
      deletebutton.setSize(xpercent * 40, ypercent * 10);
      deletebutton.setPosition(new Point(xpercent * 60,ypercent * 10));
      deletebutton.addButtonPressedListener(new IButtonPressedListener(){
         @Override
         public void buttonPressed(ButtonPressedEvent arg0) {
            if(selectedid != 0){
               selection.setVisible(false);
               deletemessage.setText("Delete " + name.getText());
               delete.setVisible(true);
            }
         }
      });
      
      final Button selectbutton = FengGUI.createButton(selection);
      selectbutton.setText("Play with selected Character");
      selectbutton.setSize(xpercent * 40, ypercent * 20);
      selectbutton.setPosition(new Point(xpercent * 60,ypercent * 40));
      selectbutton.addButtonPressedListener(new IButtonPressedListener(){
         @Override
         public void buttonPressed(ButtonPressedEvent arg0) {
            if(selectedid != 0){
               RenderPassManager.getInstance().SetActive(CharacterSelection.GetName(),false);
               SelectCharacter select = new SelectCharacter();
               select.setUserId(selectedid);
               ClientConnection.SendMessageToServer(select);
            }
         }
      });
      
      selection.layout();
   }

   public void setEnabled(boolean status){
      super.setEnabled(status);
      input.setEnabled(status);
   }
   
   public static void Show(){
      RenderPassManager.getInstance().SetActive(CharacterSelection.GetName(), true);
   }
   
   public static void SetCharacters(final PlayerData mymessage) {
      Console.println(mymessage.toString());
      Button button = FengGUI.createButton(selection);
      removeonredraw.add(button);
      button.setText(mymessage.getName());
      button.setSize(xpercent * 40, ypercent * 10);
      button.setPosition(new Point(0,buttoncount * ypercent * 12));
      buttoncount++;
      button.addButtonPressedListener(new IButtonPressedListener(){
         @Override
         public void buttonPressed(ButtonPressedEvent arg0) {
            Console.println("Requestiong Data for " + mymessage.getUserId());
            RequestDateForPlayer(mymessage.getUserId());
         }
      });
      selection.setVisible(true);
   }

   protected static void RequestDateForPlayer(int playerId) {
      RequestAdditionData reqmessage = new RequestAdditionData();
      reqmessage.setUserId(playerId);
      ClientConnection.SendMessageToServer(reqmessage);
   }
   
   public void doRender(Renderer renderer){
      fengguidisplay.display();
   }
   
   public void doUpdate(float tpf){
      input.update(tpf);
   }

   public static void SetAdditionData(AdditionPlayerData mymessage){
      name.setText("Name: " + mymessage.getName());
      credits.setText("Credits: " + mymessage.getCredits());
      Mapname.setText("Mapname: " + mymessage.getMapname());
      MapDesription.setText("MapDesription: " + mymessage.getMapDesription());
      Status.setText("Status: " + mymessage.getStatus());
      Rank.setText("Rank: " + mymessage.getRank());
      Rankpoints.setText("Rankpoints: " + mymessage.getRankpoints());
      selectedid = mymessage.getUserId();
      if (mymessage.isFemale()){
         IsFemale.setText("Gender: Female");
      }
      else
      {
         IsFemale.setText("Gender: Male");
      }
      
      if (mymessage.isAdmin()){
         IsAdmin.setText("Userclass: Admin");
      }
      else
      {
         IsAdmin.setText("Userclass: User");
      }
      
   }

   public static int GetSelectedUserId() {
      return selectedid;
   }
}