Example usage for com.badlogic.gdx.scenes.scene2d.ui ScrollPane ScrollPane

List of usage examples for com.badlogic.gdx.scenes.scene2d.ui ScrollPane ScrollPane

Introduction

In this page you can find the example usage for com.badlogic.gdx.scenes.scene2d.ui ScrollPane ScrollPane.

Prototype

public ScrollPane(Actor widget, ScrollPaneStyle style) 

Source Link

Usage

From source file:org.shadebob.skineditor.dialog.DrawablePickerDialog.java

License:Apache License

public DrawablePickerDialog(final SkinEditorGame game, final Field field) {
    super("Drawable Picker", game.skin);
    this.game = game;
    this.field = field;

    getContentTable().add(scrollPane = new ScrollPane(tableDrawables = new Table(game.skin), game.skin) {
        {/* w  ww . j  ava 2 s .c om*/
            setFlickScroll(false);
            setFadeScrollBars(false);
            setScrollbarsOnTop(true);
            tableDrawables.defaults().space(10);
            tableDrawables.padTop(10);
            tableDrawables.padBottom(10);
        }
    }).width(1000).height(550).pad(20);

    getButtonTable().add(new TextButton("Import Image", game.skin)).getActor()
            .addListener(new ChangeListener() {
                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    SwingUtils.forceFocus();
                    JFileChooser chooser = new JFileChooser();
                    chooser.setFileFilter(new FileNameExtensionFilter("Images", "png"));
                    if (chooser.showOpenDialog(null) != JFileChooser.APPROVE_OPTION) {
                        return;
                    }
                    File selectedFile = chooser.getSelectedFile();
                    if (selectedFile == null) {
                        return;
                    }

                    while (true) {
                        String fileName = selectedFile.getName();
                        String fileSuffix = fileName.substring(fileName.lastIndexOf(".") + 1);
                        fileName = fileName.substring(0, fileName.lastIndexOf("."));
                        // ??
                        fileName = fileName.toLowerCase();

                        // ??
                        fileName = JOptionPane.showInputDialog("Please choose the name of your resource",
                                fileName);
                        if (fileName == null) {
                            return;
                        }

                        // Check for duplicate resources
                        FileHandle[] assetsFolder = new FileHandle(
                                "projects/" + game.screenMain.getcurrentProject() + "/assets/").list();
                        boolean foundSomething = false;
                        for (FileHandle file : assetsFolder) {
                            if (file.nameWithoutExtension().toLowerCase().equals(fileName)) {
                                foundSomething = true;
                                break;
                            }
                        }
                        if (foundSomething) {
                            JOptionPane.showMessageDialog(null,
                                    "Sorry but this resource name is already in use!");
                        } else {
                            // ?
                            FileHandle orig = new FileHandle(selectedFile);
                            FileHandle dest = new FileHandle("projects/" + game.screenMain.getcurrentProject()
                                    + "/assets/" + fileName + "." + fileSuffix);
                            orig.copyTo(dest);

                            game.screenMain.refreshResources();
                            updateResourceData();
                            JOptionPane.showMessageDialog(null, "File successfully added to your project.");
                            return;
                        }
                    }
                }
            });
    ;
    getButtonTable().add(new TextButton("Toggle Zoom", game.skin)).getActor().addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            zoom = !zoom;
            updateTableActor();
        }
    });
    ;
    if (field != null) {
        getButtonTable().add(new TextButton("Empty Drawable", game.skin)).getActor()
                .addListener(new ChangeListener() {
                    @Override
                    public void changed(ChangeEvent event, Actor actor) {
                        try {
                            field.set(game.screenMain.paneOptions.currentStyleObj, null);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                        game.screenMain.changeSkin();
                        hide();
                        game.screenMain.panePreview.refresh();
                        game.screenMain.paneOptions.updateSelectedTableFields();
                    }
                });
        ;
    }
    getButtonTable().padBottom(15);
    button("Cancel", false).key(Keys.ESCAPE, false);
}

From source file:org.shadebob.skineditor.dialog.FontPickerDialog.java

License:Apache License

public FontPickerDialog(final SkinEditorGame game, Field field) {
    super("Bitmap Font Picker", game.skin);
    this.game = game;
    this.field = field;

    tableFonts = new Table(game.skin);
    tableFonts.left().top().pad(5);/*from ww w  . ja v a2 s.  co m*/
    tableFonts.defaults().pad(5);

    updateTable();

    ScrollPane scrollPane = new ScrollPane(tableFonts, game.skin);
    scrollPane.setFlickScroll(false);
    scrollPane.setFadeScrollBars(false);
    scrollPane.setScrollbarsOnTop(true);
    getContentTable().add(scrollPane).width(720).height(420).pad(20);

    button("Cancel", false).key(Keys.ESCAPE, false).getButtonTable().padBottom(15);
}

From source file:org.shadebob.skineditor.DrawablePickerDialog.java

License:Apache License

public DrawablePickerDialog(final SkinEditorGame game, final Field field) {

    super("Drawable Picker", game.skin);
    this.game = game;
    this.field = field;

    tableDrawables = new Table(game.skin);
    scrollPane = new ScrollPane(tableDrawables, game.skin);
    getContentTable().add(scrollPane);//from w ww  .j ava  2 s  .  com
    scrollPane.setFlickScroll(false);
    scrollPane.setFadeScrollBars(false);
    scrollPane.setScrollbarsOnTop(true);

    TextButton buttonNewNinePatch = new TextButton("Create NinePatch", game.skin);
    buttonNewNinePatch.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {

            NinePatchEditorDialog dlg = new NinePatchEditorDialog(game) {
                @Override
                public void hide() {
                    super.hide();

                    updateTable();
                }
            };

            dlg.show(game.screenMain.stage);
        }

    });

    TextButton buttonNewDrawable = new TextButton("Import Image", game.skin);
    buttonNewDrawable.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {

            // Need to steal focus first with this hack (Thanks to Z-Man)
            Frame frame = new Frame();
            frame.setUndecorated(true);
            // TODO fix falls frame.setOpacity(0);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
            frame.toFront();
            frame.setVisible(false);
            frame.dispose();

            JFileChooser chooser = new JFileChooser();
            FileNameExtensionFilter filter = new FileNameExtensionFilter("Images", "png");
            chooser.setFileFilter(filter);
            int returnVal = chooser.showOpenDialog(null);
            if (returnVal != JFileChooser.APPROVE_OPTION) {
                return;
            }
            File selectedFile = chooser.getSelectedFile();
            if (selectedFile == null) {
                return;
            }
            // Loop until the file is not found
            while (true) {
                String resourceName = selectedFile.getName();
                String ext = resourceName.substring(resourceName.lastIndexOf(".") + 1);
                resourceName = resourceName.substring(0, resourceName.lastIndexOf("."));
                resourceName = JOptionPane.showInputDialog("Please choose the name of your resource",
                        resourceName);
                if (resourceName == null) {
                    return;
                }

                // Lower case everything ! I sound like someone on
                // libgdx channel ;]
                resourceName = resourceName.toLowerCase();

                // Check for duplicate resources
                FileHandle[] assetsFolder = new FileHandle(
                        "projects/" + game.screenMain.getcurrentProject() + "/assets/").list();
                boolean foundSomething = false;
                for (FileHandle file : assetsFolder) {

                    if (file.nameWithoutExtension().toLowerCase().equals(resourceName)) {
                        foundSomething = true;
                        break;
                    }
                }
                if (foundSomething == true) {
                    JOptionPane.showMessageDialog(null, "Sorry but this resource name is already in use!");
                } else {

                    // Copy the file
                    FileHandle orig = new FileHandle(selectedFile);
                    FileHandle dest = new FileHandle("projects/" + game.screenMain.getcurrentProject()
                            + "/assets/" + resourceName + "." + ext);
                    orig.copyTo(dest);

                    game.screenMain.refreshResources();
                    refresh();
                    JOptionPane.showMessageDialog(null, "File successfully added to your project.");
                    return;
                }

            }

        }

    });

    TextButton buttonZoom = new TextButton("Toggle Zoom", game.skin);
    buttonZoom.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            zoom = !zoom;
            updateTable();

        }

    });

    TextButton buttonNoDrawable = new TextButton("Empty Drawable", game.skin);

    buttonNoDrawable.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {

            try {
                field.set(game.screenMain.paneOptions.currentStyle, null);
            } catch (Exception e) {
                e.printStackTrace();
            }

            game.screenMain.saveToSkin();

            hide();
            game.screenMain.panePreview.refresh();
            game.screenMain.paneOptions.updateSelectedTableFields();

        }

    });

    getContentTable().add(scrollPane).width(960).height(640).pad(20);
    getButtonTable().add(buttonNewNinePatch);
    getButtonTable().add(buttonNewDrawable);
    getButtonTable().add(buttonZoom);
    if (field != null) {
        getButtonTable().add(buttonNoDrawable);
    }
    getButtonTable().padBottom(15);
    button("Cancel", false);
    key(com.badlogic.gdx.Input.Keys.ESCAPE, false);

}

From source file:scenes.GameLobby.java

@Override
public void create() {
    playerLimitIndex = 0;//from  ww w . j  a  v  a2 s.c o  m
    //        shapeRenderer = new ShapeRenderer();
    //        shapeRenderer.setAutoShapeType(true);
    GameClient.getAllMaches(true);

    java.util.List<ActiveMatch> allActiveMatches = GameClient.getAllActiveMatches();

    System.out.println(allActiveMatches);

    batch = new SpriteBatch();
    availableMaps = GameMaps.getMaps();
    stage = new Stage();

    Gdx.input.setInputProcessor(stage);

    atlas = new TextureAtlas("ui/buttonPack.pack");
    skin = new Skin(atlas);

    table = new Table(skin);
    table.setBounds(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

    //initialize fonts
    FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/MunroSmall.ttf"));
    FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
    parameter.size = 60;
    font60 = generator.generateFont(parameter); // font size 12 pixels
    font60.setColor(Color.BLACK);
    parameter.size = 40;
    font30 = generator.generateFont(parameter); // font size 12 pixels
    font30.setColor(0.5f, 0.5f, 0.5f, 255);
    generator.dispose(); // don't forget to dispose to avoid memory leaks!

    ScrollPaneStyle paneStyle = new ScrollPaneStyle();

    //Font
    final TextButtonStyle textButtonStyle = new TextButtonStyle();
    textButtonStyle.downFontColor = new Color(0f, 0.57f, 0.92f, 1f);
    textButtonStyle.overFontColor = new Color(0f, 0.57f, 1f, 1f);
    textButtonStyle.font = font30;
    textButtonStyle.fontColor = Color.BLACK;

    //System.out.println(atlas.getRegions());

    paneStyle.background = new TextureRegionDrawable(atlas.findRegion("up"));

    table2 = new Table();

    TextButton[] aam = new TextButton[allActiveMatches.size()];

    for (int i = 0; i < allActiveMatches.size(); i++) {
        final ActiveMatch am = allActiveMatches.get(i);
        aam[i] = new TextButton(
                "Map:" + am.map + " - " + am.getGameMode() + " - Max:" + am.getNumberOfPlayers(),
                textButtonStyle);
        aam[i].addListener(new ClickListener() {
            @Override
            public void clicked(InputEvent event, float x, float y) {
                Config.page = new GameWaiting(am.getMap(), am.getGameMode(), am.getNumberOfPlayers());
            }
        });

        table2.add(aam[i]);
    }

    ScrollPane lobby = new ScrollPane(table2, paneStyle);

    buttonExit = new TextButton("Back", textButtonStyle);
    buttonExit.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            Config.page = new MainMenu();
        }

    });
    buttonExit.pad(20);
    buttonCreate = new TextButton("Create", textButtonStyle);
    buttonCreate.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            Config.page = new GameCreate();
        }

    });
    buttonCreate.pad(20);

    buttonNoGame = new TextButton("No Games found", textButtonStyle);
    buttonNoGame.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {

        }

    });
    buttonNoGame.pad(20);
    LabelStyle headingStyle = new LabelStyle(font60, Color.BLACK);

    heading = new Label("Lobby", headingStyle);

    table.add(heading).colspan(2).center();
    table.padBottom(100);
    table.row();

    if (allActiveMatches.size() <= 0) {
        table.add(buttonNoGame).colspan(2).center();
    } else {
        table.add(lobby).colspan(2).center();
    }

    table.padBottom(50);
    table.row();
    table.add(buttonExit);
    table.add(buttonCreate);
    stage.addActor(table);
}