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

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

Introduction

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

Prototype

public SelectBox(Skin skin, String styleName) 

Source Link

Usage

From source file:es.eucm.ead.editor.view.widgets.modelwidgets.ModelSelectBox.java

License:Open Source License

public ModelSelectBox(Skin skin, String name, Array<String> items, String labelStyle, String selectBoxStyle) {
    super(true);//from   w ww  .ja v  a2  s.  c  om

    base = 0;
    value = 0;

    add(new Label(name, skin, labelStyle)).expandX().left();
    selectBox = new SelectBox<String>(skin, selectBoxStyle);

    selectBox.setItems(items);

    selectBox.getSelection().setProgrammaticChangeEvents(false);
    add(selectBox).right();
}

From source file:es.eucm.ead.editor.view.widgets.options.DropdownOption.java

License:Open Source License

@Override
public Actor createControl() {
    selectBox = new SelectBox(items, skin);
    selectBox.addListener(new InputListener() {

        @Override//  w  w w.  j  a  v  a  2  s .  com
        public boolean handle(Event e) {
            if (changeConsideredRelevant(null, getControlValue())) {
                update();
                return true;
            }
            return false;
        }
    });
    return selectBox;
}

From source file:es.eucm.ead.editor.view.widgets.selectors.TransitionSelector.java

License:Open Source License

public TransitionSelector(Controller controller) {
    super(false);
    this.controller = controller;
    Skin skin = controller.getApplicationAssets().getSkin();
    final I18N i18N = controller.getApplicationAssets().getI18N();
    background(skin.getDrawable(SkinConstants.DRAWABLE_BLANK));

    MultiWidget toolbar = new MultiWidget(skin, SkinConstants.STYLE_TOOLBAR);
    LinearLayout buttons = new LinearLayout(true);
    toolbar.addWidgets(buttons);//ww  w .  j  av  a2  s  .  c o m

    Actor accept = WidgetBuilder.toolbarIcon(SkinConstants.IC_CHECK, i18N.m("accept"));
    buttons.add(accept);
    accept.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            Actor actor = transitionSelector.gallery.getCurrentPage();
            selectorListener.selected(actor.getName());
        }
    });

    buttons.addSpace();
    buttons.add(box = new SelectBox<String>(skin, SkinConstants.STYLE_TOOLBAR));

    add(toolbar).expandX();
    add(transitionSelector = new SelectTransitionsGallery(controller.getEditorGameAssets(), skin, i18N))
            .expand(true, true);
    transitionSelector.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            Actor currentPage = transitionSelector.gallery.getCurrentPage();
            box.setSelected(i18N.m(currentPage.getName()));
        }
    });
    transitionSelector.addListener(new FocusListener() {
        @Override
        public void focusGained(FocusEvent event) {
            for (TransitionDrawable drawable : transitionSelector.pendingCurrentTextures) {
                drawable.setUpdate(false);
            }

            Image image = (Image) ((Container) event.getActor()).getActor();
            ((TransitionDrawable) image.getDrawable()).setUpdate(true);
        }
    });
    box.getSelection().setProgrammaticChangeEvents(false);
}

From source file:es.eucm.ead.engine.gameobjects.widgets.ComboBoxGO.java

License:Open Source License

public ComboBoxGO(AssetHandler assetHandler, SceneElementFactory sceneElementFactory, Game game,
        EventFactory eventFactory) {/* www. j  a  v  a  2s.com*/
    super(assetHandler, sceneElementFactory, game, eventFactory);
    Skin s = null;
    selectBox = new SelectBox(new Object[0], s);
}

From source file:es.eucm.ead.mockup.core.control.screens.camara.Picture.java

License:Open Source License

@Override
public void create() {
    this.navigationGroup = UIAssets.getNavigationGroup();
    this.screenController = mockupController.getScreenController();

    takePicButton = new ImageButton(skin, "ic_photocamera");
    takePicButton.addListener(new ClickListener() {
        @Override//  w w w .  j  ava 2 s.  co  m
        public void clicked(InputEvent event, float x, float y) {
            takePic();
        }
    });
    String[] res = { "800x600", "1280x720", "1920x1080", "4000x3000" };
    SelectBox resolution = new SelectBox(res, skin);
    resolution.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            // TODO change resolution here
            super.clicked(event, x, y);
        }
    });

    rootTable = new Table();
    rootTable.setVisible(false);
    rootTable.setFillParent(true);
    rootTable.pad(10f);

    rootTable.add(resolution).right().top();
    rootTable.row();
    rootTable.add(takePicButton).size(takePicButton.getWidth() * 1.3f).bottom().expand().padBottom(5f);

    // Coice dialog panel
    mDialogPanel = new Panel(skin, "dialog");
    mDialogPanel.setVisible(false);
    mDialogPanel.setModal(true);
    mDialogPanel.setHideOnOutterTouch(false);
    mDialogPanel.pad(DEFAULT_ICON_LABEL_SPACE);
    mDialogPanel.defaults().space(DEFAULT_ICON_LABEL_SPACE).uniform().expand().fill();
    final float PANEL_W = stagew * .3f, PANEL_H = UIAssets.NAVIGATION_BUTTON_WIDTH_HEIGHT * 3f,
            PANEL_X = halfstagew - PANEL_W * .5F, PANEL_Y = halfstageh - PANEL_H * .5f;
    mDialogPanel.setBounds(PANEL_X, PANEL_Y, PANEL_W, PANEL_H);
    final Button newElement = createButton("Nuevo elemento", "ic_editelement", DEFAULT_ICON_LABEL_SPACE, false);
    final Button newScene = createButton("Escena nueva", "ic_editstage", DEFAULT_ICON_LABEL_SPACE, false);
    mDialogPanel.add(newScene);
    mDialogPanel.row();
    mDialogPanel.add(newElement);
    ClickListener mTransitionLIstener = new ClickListener() {

        @Override
        public void clicked(InputEvent event, float x, float y) {
            final Screens next = getNextScreen(event.getListenerActor());
            if (next == null) {
                return;
            }
            exitAnimation(next);
        }

        private Screens getNextScreen(Actor target) {
            Screens next = null;
            if (target == newElement) {
                next = Screens.ELEMENT_EDITION;
                ElementEdition.setELEMENT_INDEX(null);
            } else if (target == newScene) {
                next = Screens.SCENE_EDITION;
                SceneEdition.setSCENE_INDEX(null);
            }
            return next;
        }
    };
    newElement.addListener(mTransitionLIstener);
    newScene.addListener(mTransitionLIstener);

    stage.addActor(rootTable);
    stage.addActor(mDialogPanel);
}

From source file:es.eucm.ead.mockup.core.control.screens.camara.Recording.java

License:Open Source License

@Override
public void create() {
    this.navigationGroup = UIAssets.getNavigationGroup();
    this.screenController = mockupController.getScreenController();

    rec = false;//from  w  ww  . ja  v a2 s  . c  o  m
    elapsedMilis = 0f;
    elapsedSecs = 0;

    recordingButton = new ImageButton(skin, "ic_record");
    recordingButton.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y);
            record();
            if (!rec) {
                // TODO show panel...
                if (ProjectMenu.getFROM_INITIAL_SCENE()) {
                    exitAnimation(Screens.PROJECT_MENU);
                } else {
                    if (mockupController.getPreviousScreen() == Screens.PROJECT_MENU) {
                        onBackKeyPressed();
                    } else {
                        exitAnimation(Screens.SCENE_EDITION);
                    }
                }
            }
        }
    });

    String[] res = { "480p", "720p", "1080p" };
    resolution = new SelectBox(res, skin);
    resolution.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            // TODO change resolution here
            super.clicked(event, x, y);
        }
    });

    recInfoButton = new Table();
    recInfoButton.setVisible(false);
    Image recImg = new Image(skin.getRegion("ic_recording"));
    // TODO personalize toggle-recording in JSON
    recImg.setTouchable(Touchable.disabled);
    recLabel = new Label("", skin);
    recLabel.setColor(Color.RED);
    recInfoButton.add(recImg);
    recInfoButton.add(recLabel).padLeft(20f);

    rootTable = new Table();
    rootTable.setVisible(false);
    rootTable.setFillParent(true);
    rootTable.pad(10f);
    // rootTable.debug();

    rootTable.add(resolution).right().top();
    rootTable.row();
    rootTable.add(recInfoButton).right().top();
    rootTable.row();
    rootTable.add(recordingButton).bottom().expand().padBottom(10f);
    stage.addActor(rootTable);
}

From source file:es.eucm.ead.mockup.core.control.screens.gallery.ElementGallery.java

License:Open Source License

@Override
public void create() {
    setPreviousScreen(Screens.PROJECT_MENU);
    navigationGroup = UIAssets.getNavigationGroup();

    super.root = new Group();
    root.setVisible(false);// ww w  .  j  a  va  2s .  c o  m

    topToolbar = new ToolBar(skin);
    ToolBar bottomToolbar = new ToolBar(skin);
    topToolbar.right();

    String search = "Buscar por ...";// TODO use i18n!
    TextField searchtf = new TextField("", skin);
    searchtf.setMessageText(search);
    searchtf.setMaxLength(search.length());
    String[] orders = new String[] { "Ordenar por ...", "nombre A-Z", "nombre Z-A", "ms recientes",
            "menos recientes" };// TODO use
    // i18n!
    SelectBox order = new SelectBox(orders, skin);

    /* filter panel */
    Button applyFilter = new TextButton("Filtrar", skin);

    CheckBox[] tags = new CheckBox[] { new CheckBox("Almohada", skin), new CheckBox("Camilla", skin),
            new CheckBox("Doctor", skin), new CheckBox("Enfermera", skin), new CheckBox("Guantes", skin),
            new CheckBox("Habitacin", skin), new CheckBox("Hospital", skin), new CheckBox("Quirfano", skin),
            new CheckBox("Medicamentos", skin), new CheckBox("Mdico", skin), new CheckBox("Paciente", skin),
            new CheckBox("Vehculo", skin) };
    Table tagList = new Table(skin);
    tagList.left();
    tagList.defaults().left();
    for (int i = 0; i < tags.length; ++i) {
        tagList.add(tags[i]);
        if (i < tags.length - 1)
            tagList.row();
    }
    ScrollPane tagScroll = new ScrollPane(tagList, skin, "opaque");

    final Panel filterPanel = new Panel(skin);
    filterPanel.setVisible(false);
    final float panelw = stagew * .26f, panelx = stagew - panelw;
    filterPanel.add(tagScroll).fill().colspan(3).left();
    filterPanel.row();
    filterPanel.add(applyFilter).colspan(3).expandX();
    filterPanel.setBounds(panelx, topToolbar.getHeight(), panelw, stageh - topToolbar.getHeight() * 2f);

    Button filterButton = new TextButton("Filtrar por tags", skin);
    ClickListener closeFilterListenerTmp = new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            if (filterPanel.isVisible()) {
                mockupController.hide(filterPanel);
            } else {
                mockupController.show(filterPanel);
            }
        }
    };
    applyFilter.addListener(closeFilterListenerTmp);
    filterButton.addListener(closeFilterListenerTmp);

    Label nombre = new Label("Galera de elementos", skin);

    topToolbar.add(nombre).expandX().left().padLeft(UIAssets.NAVIGATION_BUTTON_WIDTH_HEIGHT * 1.1f);
    topToolbar.add(order);
    topToolbar.add(filterButton);
    topToolbar.add(searchtf).width(skin.getFont("default-font").getBounds(search).width + 50); // FIXME
    // hardcoded
    // fixed
    // value
    /***/

    final int COLS = 4, ROWS = 6;
    gridPanel = new GalleryGrid<Actor>(skin, ROWS, COLS, root, new ToolBar[] { topToolbar, bottomToolbar }) {
        @Override
        protected void entityClicked(InputEvent event) {
            Actor target = event.getTarget();
            if (target instanceof Image) {
                ElementEdition.setELEMENT_INDEX((Integer) target.getUserObject());
                exitAnimation(Screens.ELEMENT_EDITION);
            } else if (target instanceof Label) {
                ElementEdition.setELEMENT_INDEX(null);
                exitAnimation(Screens.ELEMENT_EDITION);
            }
        }
    };
    boolean first = true;
    for (int i = 0; i < ROWS; ++i) {
        for (int j = 0; j < COLS; ++j) {
            if (first) {
                first = false;
                gridPanel.addItem(new TextButton("Imagen en blanco", skin), 0, 0).fill();
            } else {
                int rand = MathUtils.random(Loading.demoElementsThumbnail.length - 1);
                GalleryEntity auxImg = new GalleryEntity(Loading.demoElementsThumbnail[rand]);
                auxImg.setUserObject(Integer.valueOf(rand));
                gridPanel.addItem(auxImg, i, j);// .size(auxWidth,
                // auxHeight);
            }
        }
    }

    ScrollPane scrollPane = new ScrollPane(gridPanel);
    scrollPane.setScrollingDisabled(true, false);
    scrollPane.setBounds(0, topToolbar.getHeight(), stagew, stageh - 2 * topToolbar.getHeight());
    final float DEFAULT_ICON_LABEL_SPACE = 10f;
    final Button picButton = new Button(skin);
    picButton.defaults().space(DEFAULT_ICON_LABEL_SPACE);
    Label picLabel = new Label("Nuevo desde cmara", skin);
    Image picImage = new Image(skin.getDrawable("ic_photocamera"));
    picButton.add(picImage);
    picButton.add(picLabel);

    ClickListener mTransitionLIstener = new ClickListener() {

        @Override
        public void clicked(InputEvent event, float x, float y) {
            final Screens next = getNextScreen(event.getListenerActor());
            if (next == null) {
                return;
            }
            exitAnimation(next);
        }

        private Screens getNextScreen(Actor target) {
            Screens next = null;
            if (target == picButton) {
                next = Screens.PICTURE;
            }
            return next;
        }
    };
    picButton.addListener(mTransitionLIstener);

    bottomToolbar.setY(0);
    bottomToolbar.add(picButton).expandX().left();

    root.addActor(topToolbar);
    root.addActor(bottomToolbar);
    root.addActor(scrollPane);
    root.addActor(filterPanel);

    stage.addActor(root);
}

From source file:es.eucm.ead.mockup.core.control.screens.gallery.Gallery.java

License:Open Source License

@Override
public void create() {
    setPreviousScreen(Screens.PROJECT_MENU);
    navigationGroup = UIAssets.getNavigationGroup();

    super.root = new Group();
    root.setVisible(false);//  w  ww .j a v  a  2s. c o  m

    topToolbar = new ToolBar(skin);
    ToolBar bottomToolbar = new ToolBar(skin);
    topToolbar.right();

    String search = "Buscar por ...";// TODO use i18n!
    TextField searchtf = new TextField("", skin);
    searchtf.setMessageText(search);
    searchtf.setMaxLength(search.length());
    String[] orders = new String[] { "Ordenar por ...", "nombre A-Z", "nombre Z-A", "ms recientes",
            "menos recientes" };// TODO use
    // i18n!
    SelectBox order = new SelectBox(orders, skin);

    /* filter panel */
    CheckBox cbs = new CheckBox("Escenas", skin);
    cbs.setChecked(true);
    CheckBox cbe = new CheckBox("Elementos", skin);
    cbe.setChecked(true);
    CheckBox cbi = new CheckBox("Imgenes", skin);
    cbi.setChecked(true);// TODO use i18n!
    Button applyFilter = new TextButton("Filtrar", skin);

    CheckBox[] tags = new CheckBox[] { new CheckBox("Almohada", skin), new CheckBox("Camilla", skin),
            new CheckBox("Doctor", skin), new CheckBox("Enfermera", skin), new CheckBox("Guantes", skin),
            new CheckBox("Habitacin", skin), new CheckBox("Hospital", skin), new CheckBox("Quirfano", skin),
            new CheckBox("Medicamentos", skin), new CheckBox("Mdico", skin), new CheckBox("Paciente", skin),
            new CheckBox("Vehculo", skin) };
    Table tagList = new Table(skin);
    tagList.left();
    tagList.defaults().left();
    for (int i = 0; i < tags.length; ++i) {
        tagList.add(tags[i]);
        if (i < tags.length - 1)
            tagList.row();
    }
    ScrollPane tagScroll = new ScrollPane(tagList, skin, "opaque");

    final Panel filterPanel = new Panel(skin);
    filterPanel.setVisible(false);
    final float panelw = stagew * .45f, panelx = stagew - panelw;
    filterPanel.setBounds(panelx, topToolbar.getHeight(), panelw, stageh - topToolbar.getHeight() * 2f);
    filterPanel.add(cbe).expandX();
    filterPanel.add(cbs).expandX();
    filterPanel.add(cbi).expandX();
    filterPanel.row();
    filterPanel.add(tagScroll).fill().colspan(3).left();
    filterPanel.row();
    filterPanel.add(applyFilter).colspan(3).expandX();

    Button filterButton = new TextButton("Filtrar por tags", skin);
    ClickListener closeFilterListenerTmp = new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            if (filterPanel.isVisible()) {
                mockupController.hide(filterPanel);
            } else {
                mockupController.show(filterPanel);
            }
        }
    };
    applyFilter.addListener(closeFilterListenerTmp);
    filterButton.addListener(closeFilterListenerTmp);

    Label nombre = new Label("Galera", skin);

    topToolbar.add(nombre).expandX().left().padLeft(UIAssets.NAVIGATION_BUTTON_WIDTH_HEIGHT * 1.1f);
    topToolbar.add(order);
    topToolbar.add(filterButton);
    topToolbar.add(searchtf).width(skin.getFont("default-font").getBounds(search).width + 50); // FIXME
    // hardcoded
    // fixed
    // value

    /***/

    final int COLS = 4, ROWS = 6;
    gridPanel = new GalleryGrid<Actor>(skin, ROWS, COLS, root, new ToolBar[] { topToolbar, bottomToolbar }) {
        @Override
        protected void entityClicked(InputEvent event) {
            Actor target = event.getTarget();
            if (target instanceof Image) {
                // TODO distinguish between elements and scenes
                String[] auxAttr = String.valueOf(target.getUserObject()).split(" ");
                Integer index = Integer.valueOf(auxAttr[0]);
                if (Boolean.valueOf(auxAttr[1])) { // isElement
                    ElementEdition.setELEMENT_INDEX(index);
                    exitAnimation(Screens.ELEMENT_EDITION);
                } else {
                    SceneEdition.setSCENE_INDEX(index);
                    exitAnimation(Screens.SCENE_EDITION);
                }
            } else if (target instanceof Label) {
                // We've clicked new from blank page...
                // TODO ask for choise
                SCENE_EDITION = true;
                showDialog();
            }
        }
    };
    boolean first = true;
    for (int i = 0; i < ROWS; ++i) {
        for (int j = 0; j < COLS; ++j) {
            if (first) {
                first = false;
                gridPanel.addItem(new TextButton("Crear nuevo\nen blanco", skin), 0, 0).fill();
            } else {
                Texture tex;
                int rand;
                boolean isElement;
                if (MathUtils.randomBoolean()) {
                    isElement = false;
                    rand = MathUtils.random(Loading.demoScenesThumbnail.length - 1);
                    tex = Loading.demoScenesThumbnail[rand];
                } else {
                    isElement = true;
                    rand = MathUtils.random(Loading.demoElementsThumbnail.length - 1);
                    tex = Loading.demoElementsThumbnail[rand];
                }
                GalleryEntity auxImg = new GalleryEntity(tex);
                auxImg.setUserObject(rand + " " + isElement);
                gridPanel.addItem(auxImg, i, j);
            }
        }
    }
    ScrollPane scrollPane = new ScrollPane(gridPanel);
    scrollPane.setScrollingDisabled(true, false);
    scrollPane.setBounds(0, topToolbar.getHeight(), stagew, stageh - 2 * topToolbar.getHeight());
    final float DEFAULT_ICON_LABEL_SPACE = 10f;
    final Button picButton = createButton("Nuevo desde cmara", "ic_photocamera", DEFAULT_ICON_LABEL_SPACE,
            false);
    final Button vidButton = createButton("Grabar desde Escena", "ic_videocamera", DEFAULT_ICON_LABEL_SPACE,
            true);
    ClickListener showDialogListener = new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            SCENE_EDITION = false;
            exitAnimation(Screens.PICTURE);
        }
    };
    picButton.addListener(showDialogListener);
    vidButton.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            exitAnimation(Screens.RECORDING);
        }
    });

    // Coice dialog panel
    mDialogPanel = new Panel(skin, "dialog");
    mDialogPanel.setVisible(false);
    mDialogPanel.setModal(true);
    mDialogPanel.pad(DEFAULT_ICON_LABEL_SPACE);
    mDialogPanel.defaults().space(DEFAULT_ICON_LABEL_SPACE).uniform().expand().fill();
    final float PANEL_W = stagew * .3f, PANEL_H = UIAssets.NAVIGATION_BUTTON_WIDTH_HEIGHT * 3f,
            PANEL_X = halfstagew - PANEL_W * .5F, PANEL_Y = halfstageh - PANEL_H * .5f;
    mDialogPanel.setBounds(PANEL_X, PANEL_Y, PANEL_W, PANEL_H);
    final Button newElement = createButton("Nuevo elemento", "ic_editelement", DEFAULT_ICON_LABEL_SPACE, false);
    final Button newScene = createButton("Escena nueva", "ic_editstage", DEFAULT_ICON_LABEL_SPACE, false);
    mDialogPanel.add(newScene);
    mDialogPanel.row();
    mDialogPanel.add(newElement);
    ClickListener mTransitionLIstener = new ClickListener() {

        @Override
        public void clicked(InputEvent event, float x, float y) {
            final Screens next = getNextScreen(event.getListenerActor());
            if (next == null) {
                return;
            }
            exitAnimation(next);
        }

        private Screens getNextScreen(Actor target) {
            Screens next = null;
            if (SCENE_EDITION) {
                // We've clicked NewBlankImage
                if (target == newElement) {
                    next = Screens.ELEMENT_EDITION;
                    SCENE_EDITION = false;
                } else if (target == newScene) {
                    next = Screens.SCENE_EDITION;
                }
            }
            return next;
        }
    };
    newElement.addListener(mTransitionLIstener);
    newScene.addListener(mTransitionLIstener);

    bottomToolbar.setY(0);
    bottomToolbar.add(picButton).expandX().left();
    bottomToolbar.add(vidButton).expandX().right();

    root.addActor(topToolbar);
    root.addActor(bottomToolbar);
    root.addActor(scrollPane);
    root.addActor(filterPanel);
    root.addActor(mDialogPanel);

    stage.addActor(root);
}

From source file:es.eucm.ead.mockup.core.control.screens.gallery.ProjectGallery.java

License:Open Source License

@Override
public void create() {
    setPreviousScreen(Screens.MAIN_MENU);

    super.root = new Group();
    root.setVisible(false);//from w  w  w.  j av a2s  . c  o m

    topToolBar = new ToolBar(skin);
    topToolBar.right();

    final ImageButton backButton = new ImageButton(skin, "ic_goback");
    backButton.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            exitAnimation(Screens.MAIN_MENU);
        }
    });
    String search = "Buscar por nombre";//TODO use i18n!
    TextField searchtf = new TextField("", skin);
    searchtf.setMessageText(search);
    searchtf.setMaxLength(search.length());
    String[] orders = new String[] { "Ordenar por ...", "nombre A-Z", "nombre Z-A", "ms recientes",
            "menos recientes" };//TODO use i18n!
    SelectBox ordenar = new SelectBox(orders, skin);

    Label nombre = new Label("Galera de proyectos", skin);

    topToolBar.add(backButton);
    topToolBar.add(nombre).expandX().left().padLeft(5f);
    topToolBar.add(ordenar);
    topToolBar.add(searchtf).width(skin.getFont("default-font").getBounds(search).width + 50); //FIXME hardcoded fixed value

    Texture t = am.get("mockup/temp/proyecto.png", Texture.class);
    t.setFilter(TextureFilter.Linear, TextureFilter.Linear);
    final int COLS = 3, ROWS = 6;
    gridPanel = new GalleryGrid<Actor>(skin, ROWS, COLS, root, new ToolBar[] { topToolBar }) {
        @Override
        protected void entityClicked(InputEvent event) {
            if (event.getListenerActor() instanceof GridPanel) {
                exitAnimation(Screens.PROJECT_MENU);
            }
        }
    };
    boolean first = true;
    for (int i = 0; i < ROWS; ++i) {
        for (int j = 0; j < COLS; ++j) {
            if (first) {
                first = false;
                gridPanel.addItem(new ImageButton(skin, "ic_newproject"), 0, 0).fill();
            } else {
                GalleryEntity auxImg = new GalleryEntity(t);
                gridPanel.addItem(auxImg, i, j);
            }
        }
    }

    ScrollPane scrollPane = new ScrollPane(gridPanel);
    scrollPane.setScrollingDisabled(true, false);
    scrollPane.setBounds(0, 0, stagew, stageh - topToolBar.getHeight());

    root.addActor(topToolBar);
    root.addActor(scrollPane);

    stage.addActor(root);
}

From source file:es.eucm.ead.mockup.core.control.screens.gallery.SceneGallery.java

License:Open Source License

@Override
public void create() {
    setPreviousScreen(Screens.PROJECT_MENU);
    navigationGroup = UIAssets.getNavigationGroup();

    super.root = new Group();
    root.setVisible(false);/*from   w  w  w  .j  ava  2  s  .co  m*/

    topToolbar = new ToolBar(skin);
    ToolBar bottomToolBar = new ToolBar(skin);
    topToolbar.right();

    String search = "Buscar por ...";// TODO use i18n!
    TextField searchtf = new TextField("", skin);
    searchtf.setMessageText(search);
    searchtf.setMaxLength(search.length());
    String[] orders = new String[] { "Ordenar por ...", "nombre A-Z", "nombre Z-A", "ms recientes",
            "menos recientes" };// TODO use
    // i18n!
    SelectBox order = new SelectBox(orders, skin);

    /* filter panel */
    Button applyFilter = new TextButton("Filtrar", skin);

    CheckBox[] tags = new CheckBox[] { new CheckBox("Almohada", skin), new CheckBox("Camilla", skin),
            new CheckBox("Doctor", skin), new CheckBox("Enfermera", skin), new CheckBox("Guantes", skin),
            new CheckBox("Habitacin", skin), new CheckBox("Hospital", skin), new CheckBox("Quirfano", skin),
            new CheckBox("Medicamentos", skin), new CheckBox("Mdico", skin), new CheckBox("Paciente", skin),
            new CheckBox("Vehculo", skin) };
    Table tagList = new Table(skin);
    tagList.left();
    tagList.defaults().left();
    for (int i = 0; i < tags.length; ++i) {
        tagList.add(tags[i]);
        if (i < tags.length - 1)
            tagList.row();
    }
    ScrollPane tagScroll = new ScrollPane(tagList, skin, "opaque");

    final Panel filterPanel = new Panel(skin);
    filterPanel.setVisible(false);
    final float panelw = stagew * .26f, panelx = stagew - panelw;
    filterPanel.add(tagScroll).fill().colspan(3).left();
    filterPanel.row();
    filterPanel.add(applyFilter).colspan(3).expandX();
    filterPanel.setBounds(panelx, topToolbar.getHeight(), panelw, stageh - topToolbar.getHeight() * 2f);

    Button filterButton = new TextButton("Filtrar por tags", skin);
    ClickListener closeFilterListenerTmp = new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            if (filterPanel.isVisible()) {
                mockupController.hide(filterPanel);
            } else {
                mockupController.show(filterPanel);
            }
        }
    };
    applyFilter.addListener(closeFilterListenerTmp);
    filterButton.addListener(closeFilterListenerTmp);

    name = new Label("Galera de escenas", skin);

    topToolbar.add(name).expandX().left().padLeft(UIAssets.NAVIGATION_BUTTON_WIDTH_HEIGHT * 1.1f);
    topToolbar.add(order);
    topToolbar.add(filterButton);
    topToolbar.add(searchtf).width(skin.getFont("default-font").getBounds(search).width + 50); // FIXME
    // hardcoded
    // fixed
    // value
    /***/

    final int COLS = 4, ROWS = 6;
    gridPanel = new GalleryGrid<Actor>(skin, ROWS, COLS, root, new ToolBar[] { topToolbar, bottomToolBar }) {
        @Override
        protected void entityClicked(InputEvent event) {
            Actor target = event.getTarget();
            if (target instanceof Image) {
                if (ProjectMenu.getFROM_INITIAL_SCENE()) {
                    exitAnimation(Screens.PROJECT_MENU);
                } else {
                    SceneEdition.setSCENE_INDEX((Integer) target.getUserObject());
                    exitAnimation(Screens.SCENE_EDITION);
                }
            } else if (target instanceof Label) {
                SceneEdition.setSCENE_INDEX(null);
                exitAnimation(Screens.SCENE_EDITION);
            }
        }
    };
    boolean first = true;
    for (int i = 0; i < ROWS; ++i) {
        for (int j = 0; j < COLS; ++j) {
            if (first) {
                first = false;
                gridPanel.addItem(new TextButton("Imagen en blanco", skin), 0, 0).fill();
            } else {
                int rand = MathUtils.random(Loading.demoScenesThumbnail.length - 1);
                GalleryEntity auxImg = new GalleryEntity(Loading.demoScenesThumbnail[rand]);
                auxImg.setUserObject(Integer.valueOf(rand));
                gridPanel.addItem(auxImg, i, j);
            }
        }
    }
    ScrollPane scrollPane = new ScrollPane(gridPanel);
    scrollPane.setScrollingDisabled(true, false);
    scrollPane.setBounds(0, topToolbar.getHeight(), stagew, stageh - 2 * topToolbar.getHeight());
    final float DEFAULT_ICON_LABEL_SPACE = 10f;
    final Button picButton = new Button(skin);
    picButton.defaults().space(DEFAULT_ICON_LABEL_SPACE);
    Label picLabel = new Label("Nuevo desde cmara", skin);
    Image picImage = new Image(skin.getDrawable("ic_photocamera"));
    picButton.add(picImage);
    picButton.add(picLabel);

    final Button vidButton = new Button(skin);
    vidButton.defaults().space(DEFAULT_ICON_LABEL_SPACE);
    Label vidLabel = new Label("Grabar desde Escena", skin);
    Image vidImage = new Image(skin.getDrawable("ic_videocamera"));
    vidButton.add(vidImage);
    vidButton.add(vidLabel);
    ClickListener mTransitionLIstener = new ClickListener() {

        @Override
        public void clicked(InputEvent event, float x, float y) {
            final Screens next = getNextScreen(event.getListenerActor());
            if (next == null) {
                return;
            }
            exitAnimation(next);
        }

        private Screens getNextScreen(Actor target) {
            Screens next = null;
            if (target == picButton) {
                next = Screens.PICTURE;
            } else if (target == vidButton) {
                next = Screens.RECORDING;
            }
            return next;
        }
    };
    picButton.addListener(mTransitionLIstener);
    vidButton.addListener(mTransitionLIstener);

    bottomToolBar.setY(0);
    bottomToolBar.add(picButton).expandX().left();
    bottomToolBar.add(vidButton).expandX().right();

    root.addActor(topToolbar);
    root.addActor(bottomToolBar);
    root.addActor(scrollPane);
    root.addActor(filterPanel);

    stage.addActor(root);
}