org.onecmdb.ui.gwt.itil.client.main.screen.navigation.NavigationScreen.java Source code

Java tutorial

Introduction

Here is the source code for org.onecmdb.ui.gwt.itil.client.main.screen.navigation.NavigationScreen.java

Source

/*
 * Copyright 2007 Aditya Kapur <addy AT gwtiger.org>
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *    http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.onecmdb.ui.gwt.itil.client.main.screen.navigation;

import org.gwtiger.client.screen.BaseScreen;
import org.gwtiger.client.widget.ScreenMenuItem;
import org.onecmdb.ui.gwt.itil.client.ITILApplication;
import org.onecmdb.ui.gwt.toolkit.client.OneCMDBApplication;
import org.onecmdb.ui.gwt.toolkit.client.control.tree.InheritanceTreeControl;
import org.onecmdb.ui.gwt.toolkit.client.model.onecmdb.GWT_CiBean;
import org.onecmdb.ui.gwt.toolkit.client.view.screen.OneCMDBBaseScreen;
import org.onecmdb.ui.gwt.toolkit.client.view.tree.ChangeTreeRootTree;

import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Tree;
import com.google.gwt.user.client.ui.TreeItem;
import com.google.gwt.user.client.ui.TreeListener;
import com.google.gwt.user.client.ui.Widget;

public class NavigationScreen extends OneCMDBBaseScreen implements ClickListener {
    private Tree treePanel = new Tree();

    private ScreenMenuItem newIncidentScreen = new ScreenMenuItem(
            createHTML("images/incident_16.gif", "New Incident"), ITILApplication.NEW_INCDIENT_SCREEN);
    private ScreenMenuItem monitorIncidentScreen = new ScreenMenuItem(
            createHTML("images/incident_16.gif", "List Incidents"), ITILApplication.LIST_INCDIENT_SCREEN);
    private ScreenMenuItem groupMonitorIncidentScreen = new ScreenMenuItem(
            createHTML("images/incident_16.gif", "List Incidents by Status"),
            ITILApplication.GROUP_LIST_INCDIENT_SCREEN);

    private ScreenMenuItem newProblemScreen = new ScreenMenuItem(createHTML("images/problem_16.gif", "New Problem"),
            ITILApplication.NEW_PROBLEM_SCREEN);
    private ScreenMenuItem monitorProblemScreen = new ScreenMenuItem(
            createHTML("images/problem_16.gif", "List Problems"), ITILApplication.LIST_PROBLEM_SCREEN);
    private ScreenMenuItem groupMonitorProblemScreen = new ScreenMenuItem(
            createHTML("images/problem_16.gif", "List Problems by Status"),
            ITILApplication.GROUP_LIST_PROBLEM_SCREEN);

    // TREE
    // ITIL
    //   Operation 
    //     Incident Management
    //          New
    //         List
    //         Edit
    //     Problem Management
    //         New
    //         List
    //         Edit
    public NavigationScreen() {

        /*
        newIncidentScreen.addClickListener(this);
        monitorIncidentScreen.addClickListener(this);
        groupMonitorIncidentScreen.addClickListener(this);
        newProblemScreen.addClickListener(this);
        monitorProblemScreen.addClickListener(this);
        groupMonitorProblemScreen.addClickListener(this);
        */

        ScreenObjectTypeMenuItem itilMain = new ScreenObjectTypeMenuItem(
                createHeaderHTML("images/ITIL/itil_32.gif", "ITIL Applications"), false,
                ITILApplication.SHOW_STATIC_CONTENT, "static/welcome_itil_applications.html");

        TreeItem itil = addItem(treePanel, itilMain);

        ScreenObjectTypeMenuItem operationMenu = new ScreenObjectTypeMenuItem(
                createHeaderHTML("images/ITIL/service-operation_32.gif", "Service Operation"), false,
                ITILApplication.SHOW_STATIC_CONTENT, "static/welcome_operation.html");
        TreeItem operationItem = addItem(itil, operationMenu);

        ScreenObjectTypeMenuItem transitionMenu = new ScreenObjectTypeMenuItem(
                createHeaderHTML("images/ITIL/service-transition_32.gif", "Service Transition"), false,
                ITILApplication.SHOW_STATIC_CONTENT, "static/welcome_transition.html");
        TreeItem transitionItem = addItem(itil, transitionMenu);

        /**
         * Incident navigation
         */
        ScreenObjectTypeMenuItem incidentMenu = new ScreenObjectTypeMenuItem(
                createHTML("images/incident_16.gif", "Incident Management"), false,
                ITILApplication.SHOW_STATIC_CONTENT, "static/welcome_incident.html");
        TreeItem incidentItem = addItem(operationItem, incidentMenu);

        addItem(incidentItem, newIncidentScreen);
        addItem(incidentItem, monitorIncidentScreen);
        addItem(incidentItem, groupMonitorIncidentScreen);

        /*
        TreeItem newIncidentItem = new TreeItem();
        newIncidentItem.setWidget(newIncidentScreen);
        incidentItem.addItem(newIncidentItem);
            
        TreeItem monitorIncidentItem = new TreeItem();
        monitorIncidentItem.setWidget(monitorIncidentScreen);
        incidentItem.addItem(monitorIncidentItem);
            
        TreeItem groupMonitorIncidentItem = new TreeItem();
        groupMonitorIncidentItem.setWidget(groupMonitorIncidentScreen);
        incidentItem.addItem(groupMonitorIncidentItem);
        */
        /**
         * Problem navigation
         */
        ScreenObjectTypeMenuItem problemMenu = new ScreenObjectTypeMenuItem(
                createHTML("images/problem_16.gif", "Problem Management"), false,
                ITILApplication.SHOW_STATIC_CONTENT, "static/welcome_problem.html");
        TreeItem problemItem = addItem(operationItem, problemMenu);

        addItem(problemItem, newProblemScreen);
        addItem(problemItem, monitorProblemScreen);
        addItem(problemItem, groupMonitorProblemScreen);

        /*
        TreeItem newProblemItem = new TreeItem();
        newProblemItem.setWidget(newProblemScreen);
        problemItem.addItem(newProblemItem);
            
        TreeItem monitorProblemItem = new TreeItem();
        monitorProblemItem.setWidget(monitorProblemScreen);
        problemItem.addItem(monitorProblemItem);
            
        TreeItem groupMonitorProblemItem = new TreeItem();
        groupMonitorProblemItem.setWidget(groupMonitorProblemScreen);
        problemItem.addItem(groupMonitorProblemItem);
        */
        /**
         * Configuration Management
         */
        ScreenObjectTypeMenuItem configurationMenu = new ScreenObjectTypeMenuItem(
                createHTML("Configuration Management"), false, ITILApplication.SHOW_STATIC_CONTENT,
                "static/welcome_configuration.html");

        TreeItem configItem = addItem(transitionItem, configurationMenu);

        /*
        TreeItem configItem = new TreeItem();
        configItem.setWidget(new Label("Configuration Management"));
        transitionItem.addItem(configItem);
        */
        ScreenObjectTypeMenuItem assetMenu = new ScreenObjectTypeMenuItem(createHTML("Assets"), false,
                ITILApplication.SHOW_STATIC_CONTENT, "static/welcome_asset.html");

        TreeItem assetItem = addItem(configItem, assetMenu);

        /*
        TreeItem listCIItem = new TreeItem();
        listCIItem.setWidget(new Label("Assets"));
        configItem.addItem(listCIItem);
        */
        assetItem.addItem("Loading....");
        //treePanel.addItem(itil);
        treePanel.setStyleName("mdv-form");

        InheritanceTreeControl treeControl = new InheritanceTreeControl("Ci");
        treeControl.setFilterInstances(Boolean.TRUE);
        // Add this to show that the CI is clickable.
        treeControl.setClickListener(new ClickListener() {
            public void onClick(Widget sender) {
            }
        });
        treeControl.setTreeListener(new TreeListener() {

            public void onTreeItemSelected(TreeItem item) {
                // Show a list of that template.
                Object data = item.getUserObject();
                if (data instanceof GWT_CiBean) {

                    ITILApplication.get().showScreen(ITILApplication.LIST_CI_SCREEN, ((GWT_CiBean) data).getAlias(),
                            new Long(-1));
                }
            }

            public void onTreeItemStateChanged(TreeItem item) {
                // TODO Auto-generated method stub

            }

        });
        ChangeTreeRootTree templateTree = new ChangeTreeRootTree(treePanel, treeControl);
        templateTree.setTriggerItem(assetItem);

        initWidget(treePanel);
    }

    public boolean isRightPanel() {
        return (false);
    }

    private TreeItem addItem(Tree tree, ScreenMenuItem widget) {
        TreeItem childItem = new TreeItem();
        childItem.setWidget(widget);
        tree.addItem(childItem);

        widget.addClickListener(this);

        return (childItem);
    }

    private TreeItem addItem(TreeItem parentItem, ScreenMenuItem widget) {
        TreeItem childItem = new TreeItem();
        childItem.setWidget(widget);
        parentItem.addItem(childItem);

        widget.addClickListener(this);
        return (childItem);
    }

    /**
       * Creates an HTML fragment that places an image & caption together, for use
       * in a group header.
       * 
       * @param imageUrl the url of the icon image to be used
       * @param caption the group caption
       * @return the header HTML fragment
       */
    private String createHeaderHTML(String imageUrl, String caption) {
        return "<table align='left'><tr>" + "<td><img src='" + imageUrl + "'></td>"
                + "<td style='vertical-align:middle'><b style='white-space:nowrap'><a href='javascript:;'>"
                + caption + "</a></b></td>" + "</tr></table>";
    }

    private String createHTML(String imageURL, String caption) {
        return "<table align='left'><tr><td><img src='" + imageURL + "'></td>"
                + "<td style='vertical-align:middle'><a style='white-space:nowrap' href='javascript:;'>" + caption
                + "</a></td>" + "</tr></table>";
        /*
        return "<a style='white-space:nowrap' href='javascript:;'>"
        + caption + "</a>";
         */
    }

    private String createHTML(String caption) {
        return "<table align='left'><tr>"
                + "<td style='vertical-align:middle'><a style='white-space:nowrap' href='javascript:;'>" + caption
                + "</a></td>" + "</tr></table>";
        /*
        return "<a style='white-space:nowrap' href='javascript:;'>"
        + caption + "</a>";
         */
    }

    private String createHTMLWithTable(String caption) {
        return "<table align='left'><tr>"
                + "<td><img src='mdv-menu.gif'></td><td style='vertical-align:middle'><a href='javascript:;'>"
                + caption + "</a></td>" + "</tr></table>";
    }

    public void onClick(Widget sender) {
        try {
            if (sender instanceof ScreenObjectTypeMenuItem) {
                ScreenObjectTypeMenuItem screen = (ScreenObjectTypeMenuItem) sender;
                ITILApplication.get().showScreen(screen.getScreenIndex(), screen.getObjectType(), new Long(0));
                return;
            }
            if (sender instanceof ScreenMenuItem) {
                ScreenMenuItem screen = (ScreenMenuItem) sender;
                ITILApplication.get().showScreen(screen.getScreenIndex());
                return;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    class ScreenObjectTypeMenuItem extends ScreenMenuItem {

        private String objectType;

        public ScreenObjectTypeMenuItem(String html, boolean wordWrap, int screenIndex, String objectType) {
            super(html, wordWrap, screenIndex);
            this.objectType = objectType;
        }

        public String getObjectType() {
            return (this.objectType);
        }

    }

}