Package com.volantis.mcs.protocols.menu.builder

Examples of com.volantis.mcs.protocols.menu.builder.MenuModelBuilder


    private Menu createSimpleMenu(String title, String href, String text)
            throws BuilderException {
        try {
            // Build a very simple menu with a single item which contains a
            // label with some text.
            MenuModelBuilder builder = new ConcreteMenuModelBuilder();
   
            builder.startMenu();
   
            builder.startMenuItem();
            builder.setTitle(title);
            builder.setHref(new LiteralLinkAssetReference(href));

            builder.startLabel();
   
            builder.startText();
            DOMOutputBuffer dom = new TestDOMOutputBuffer();
            dom.writeText(text);
            builder.setText(dom);
            builder.endText();
           
            builder.endLabel();
   
            builder.endMenuItem();
           
            builder.endMenu();
           
            return builder.getCompletedMenuModel();
        } catch (MissingResourceException e) {
            // work around bug in junit?
            throw new BuilderException(e);
        }
    }
View Full Code Here


                rendererContext, rendererFactory,
                new DefaultMenuModule(rendererContext, rendererFactory));
        MenuRendererSelector selector = module.getMenuRendererSelector();

        // Create the menu.
        MenuModelBuilder builder = new ConcreteMenuModelBuilder();
        builder.startMenu();

        // Set up style properties to use OpenWave menu renderer.
        builder.setElementDetails("menu", null,
                StylesBuilder.getCompleteStyles(
                        "mcs-menu-link-style: numeric-shortcut"));

        // Target it at a specific pane.
        DOMOutputBuffer buffer;

        builder.setPane(MENU_PANE);

        // Create the first menu item explicitly targeted at a different pane.
        builder.startMenuItem();

        // Set the style.
        builder.setElementDetails("menuitem", null,
                StylesBuilder.getInitialValueStyles());

        // Set the href.
        builder.setHref(new LiteralLinkAssetReference("href1.xml"));

        // Set the pane.
        builder.setPane(ITEM1_PANE);

        // Create a plain text label.
        builder.startLabel();
        builder.startText();

        // Set the text.
        buffer = new TestDOMOutputBuffer();
        buffer.writeText("item 1");
        builder.setText(buffer);

        builder.endText();
        builder.endLabel();

        builder.endMenuItem();

        // Create the second menu item explicitly targeted at a different pane.
        builder.startMenuItem();

        // Set the style.
        builder.setElementDetails("menuitem", null,
                StylesBuilder.getInitialValueStyles());

        // Set the href.
        builder.setHref(new LiteralLinkAssetReference("href2.xml"));

        // Set the pane.
        builder.setPane(ITEM2_PANE);

        // Create a plain text label.
        builder.startLabel();
        builder.startText();

        // Set the text.
        buffer = new TestDOMOutputBuffer();
        buffer.writeText("item 2");
        builder.setText(buffer);

        builder.endText();
        builder.endLabel();

        builder.endMenuItem();

        builder.endMenu();

        Menu menu = builder.getCompletedMenuModel();

        // Select the renderer to use for this menu.
        MenuRenderer renderer = selector.selectMenuRenderer(menu);

        // Make sure that it is of the appropriate type.
View Full Code Here

            StyleKeyword imageStyle, StyleKeyword textStyle, StyleKeyword orderStyle,
            String menuTitle, String itemTitle, String href, String text,
            String imageComponent) throws BuilderException {
        // Build a very simple menu with a single item which contains a label
        // with some text and an icon.
        MenuModelBuilder builder = new ConcreteMenuModelBuilder();
        builder.startMenu();

        Styles menuStyles = StylesBuilder.getCompleteStyles(
                (imageStyle == null ? "" :
                "mcs-menu-image-style: " + imageStyle + "; ") +
                (textStyle == null ? "" :
                "mcs-menu-text-style: " + textStyle + "; ") +
                (orderStyle == null ? "" :
                "mcs-menu-item-order: " + orderStyle + "; "));

        builder.setElementDetails("menu", null, menuStyles);
        builder.setTitle(menuTitle);

        builder.startMenuItem();
        builder.setTitle(itemTitle);
        builder.setHref(new LiteralLinkAssetReference(href));

        builder.startLabel();

        builder.startText();
        DOMOutputBuffer dom = new TestDOMOutputBuffer();
        dom.writeText(text);
        builder.setText(dom);
        builder.endText();

        builder.startIcon();
        // this is required or we crash trying to extract the element name in
        // the renderer
        builder.setElementDetails("menu-icon", null,
                StylesBuilder.getInitialValueStyles());
        builder.setNormalImageURL(new TestNormalImageAssetReference(
                imageComponent));
        builder.endIcon();

        builder.endLabel();

        builder.endMenuItem();

        builder.endMenu();

        return builder.getCompletedMenuModel();
    }
View Full Code Here

     * @return a valid menu with the specified style property values
     */
    protected Menu createMenu(Styles menuStyles)
        throws Exception {

        MenuModelBuilder builder = new ConcreteMenuModelBuilder();
        builder.startMenu();
        builder.setElementDetails("menu", "menu1", menuStyles);
        builder.startMenuItem();
        builder.setElementDetails("menuitem", "menuitem1",
                StylesBuilder.getInitialValueStyles());
        builder.startLabel();
        builder.startIcon();
        builder.setNormalImageURL(new LiteralImageAssetReference("normal.gif"));
        builder.setOverImageURL(new LiteralImageAssetReference("over.gif"));
        builder.endIcon();
        builder.startText();

        OutputBuffer buffer = new TestDOMOutputBuffer();
        buffer.writeText("text");

        builder.setText(buffer);
        builder.endText();
        builder.endLabel();
        builder.setHref(new LiteralLinkAssetReference("href.xml"));
        builder.endMenuItem();
        builder.endMenu();

        return builder.getCompletedMenuModel();
    }
View Full Code Here

     * and sub-menus.
     */
    public void testGetMenuBufferMainMenuAuto() throws Exception {
        MenuBufferLocator locator = createMenuBufferLocator();

        MenuModelBuilder builder = new ConcreteMenuModelBuilder();
        Menu menu;

        builder.startMenu();

        // Make the menu automatic allocate and ensure that the pane is
        // incompletely specified to ensure automatic iteration allocation
        builder.setElementDetails("menu", null,
                StylesBuilder.getCompleteStyles(
                        "mcs-menu-item-iterator-allocation: automatic"));

        builder.setPane(new FormatReference("pane",
                                            new NDimensionalIndex(
                                                    new int[]{1, 2, 0},
                                                    2)));

        createMenuItem(builder, "item1");
        createMenuItem(builder, "item2");
        createMenuGroup(builder);
        createMenuItem(builder, "item3",
                       new FormatReference("other",
                                           new NDimensionalIndex(
                                                   new int[]{0},
                                                   0)));

        builder.startMenu();
        createMenuItem(builder, "item4.1");
        builder.endMenu();

        menu = builder.endMenu();

        checkAllocations(
                menu,
                locator,
                new FormatReference[]{
View Full Code Here

     * containing menu items, groups and sub-menus.
     */
    public void testGetMenuBufferMainMenuFullySpec() throws Exception {
        MenuBufferLocator locator = createMenuBufferLocator();

        MenuModelBuilder builder = new ConcreteMenuModelBuilder();
        Menu menu;

        builder.startMenu();

        // Make the menu automatic allocate and ensure that the pane is
        // fully specified to ensure no automatic iteration allocation
        builder.setElementDetails("menu", null,
                StylesBuilder.getCompleteStyles(
                        "mcs-menu-item-iterator-allocation: automatic"));

        builder.setPane(new FormatReference("pane",
                                            new NDimensionalIndex(
                                                    new int[] {1, 2, 0})));

        createMenuItem(builder, "item1");
        createMenuItem(builder, "item2");
        createMenuGroup(builder);
        createMenuItem(builder, "item3",
                       new FormatReference("other",
                                           new NDimensionalIndex(
                                                   new int[] {0},
                                                   0)));

        builder.startMenu();
        createMenuItem(builder, "item4.1");
        builder.endMenu();

        menu = builder.endMenu();

        checkAllocations(
                menu,
                locator,
                new FormatReference[] {
View Full Code Here

     * style is "none") containing menu items, groups and sub-menus.
     */
    public void testGetMenuBufferMainMenuNoAuto() throws Exception {
        MenuBufferLocator locator = createMenuBufferLocator();

        MenuModelBuilder builder = new ConcreteMenuModelBuilder();
        Menu menu;

        builder.startMenu();

        // Make the menu manually allocate and ensure that the pane is
        // incompletely specified to ensure no automatic iteration allocation
        builder.setElementDetails("menu", null,
                StylesBuilder.getCompleteStyles(
                        "mcs-menu-item-iterator-allocation: none"));

        builder.setPane(new FormatReference("pane",
                                            new NDimensionalIndex(
                                                    new int[]{1, 2, 0},
                                                    2)));

        createMenuItem(builder, "item1");
        createMenuItem(builder, "item2");
        createMenuGroup(builder);
        createMenuItem(builder, "item3",
                       new FormatReference("other",
                                           new NDimensionalIndex(
                                                   new int[]{0},
                                                   0)));

        builder.startMenu();
        createMenuItem(builder, "item4.1");
        builder.endMenu();

        menu = builder.endMenu();

        checkAllocations(
                menu,
                locator,
                new FormatReference[]{
View Full Code Here

     * being auto iteration allocated with a sub-menu also being auto iterated.
     */
    public void testGetMenuBufferBothMainMenuAndSubMenuAuto() throws Exception {
        MenuBufferLocator locator = createMenuBufferLocator();

        MenuModelBuilder builder = new ConcreteMenuModelBuilder();
        Menu menu;

        builder.startMenu();

        // Make the menu automatic allocate and ensure that the pane is
        // incompletely specified to ensure automatic iteration allocation
        builder.setElementDetails("menu", null,
                StylesBuilder.getCompleteStyles(
                        "mcs-menu-item-iterator-allocation: automatic"));

        builder.setPane(new FormatReference("pane",
                                            new NDimensionalIndex(
                                                    new int[]{1, 2, 0},
                                                    2)));

        createMenuItem(builder, "item1");

        builder.startMenu();

        // Make this menu automatic allocate and set the pane as incompletely
        // specified to enable automatic iteration allocation
        builder.setElementDetails("submenu", null,
                StylesBuilder.getCompleteStyles(
                        "mcs-menu-item-iterator-allocation: automatic"));

        builder.setPane(new FormatReference("sub",
                                            new NDimensionalIndex(
                                                    new int[]{0, 0, 0},
                                                    0)));

        createMenuItem(builder, "item2.1");
        createMenuItem(builder, "item2.2");
        createMenuItem(builder, "item2.3",
                       fr("other", new int[]{3, 1, 0}));
        createMenuGroup(builder, new GroupBuilder() {
            public void build(MenuModelBuilder builder) throws Exception {
                createMenuItem(builder, "submenu group item1");
                createMenuItem(builder, "submenu group item2");
            }
        });
        builder.endMenu();

        menu = builder.endMenu();

        checkAllocations(
                menu,
                locator,
                new FormatReference[]{
View Full Code Here

     * format reference get the same menu buffer.
     */
    public void testGetMenuBufferConsistent() throws Exception {
        final MenuBufferLocator locator = createMenuBufferLocator();

        MenuModelBuilder builder = new ConcreteMenuModelBuilder();
        Menu menu;

        builder.startMenu();

        // Make the menu automatic allocate and ensure that the pane is
        // incompletely specified to ensure automatic iteration allocation
        builder.setElementDetails("menu", null,
                StylesBuilder.getCompleteStyles(
                        "mcs-menu-item-iterator-allocation: automatic"));

        builder.setPane(new FormatReference("pane",
                                            new NDimensionalIndex(
                                                    new int[]{1, 2, 0},
                                                    2)));

        createMenuItem(builder, "item1");

        builder.startMenu();

        createMenuItem(builder, "item2.1");
        createMenuItem(builder, "item2.2");

        builder.endMenu();

        menu = builder.endMenu();

        final Map buffers = new HashMap();

        MenuModelVisitor setupMapVisitor = new AbstractMenuModelHandler() {
            // javadoc inherited
View Full Code Here

             */
            protected void setUp(MarinerPageContext pageContext)
                    throws Exception {
                // Now set up an appropriate context within the Menu Model and
                // the page context
                MenuModelBuilder builder = pageContext.getMenuBuilder();
                VolantisProtocol protocol = pageContext.getProtocol();
                originalBuffer = protocol.getOutputBufferFactory().
                        createOutputBuffer();
                builder.startMenu();
                builder.setElementDetails("top", null,
                        StylesBuilder.getDeprecatedStyles());
                pageContext.pushOutputBuffer(originalBuffer);

                assertSame("current output buffer not as expected",
                           originalBuffer,
View Full Code Here

TOP

Related Classes of com.volantis.mcs.protocols.menu.builder.MenuModelBuilder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.