org.ebayopensource.turmeric.policy.adminui.client.view.PolicyContainer.java Source code

Java tutorial

Introduction

Here is the source code for org.ebayopensource.turmeric.policy.adminui.client.view.PolicyContainer.java

Source

/********************************************************************
 * Copyright (c) 2010 eBay Inc., and others. All Rights Reserved.
 * 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
 *******************************************************************/
package org.ebayopensource.turmeric.policy.adminui.client.view;

import java.util.Iterator;
import java.util.List;

import org.ebayopensource.turmeric.policy.adminui.client.Display;
import org.ebayopensource.turmeric.policy.adminui.client.PolicyDashboard;
import org.ebayopensource.turmeric.policy.adminui.client.model.UserAction;
import org.ebayopensource.turmeric.policy.adminui.client.view.common.PolicyMenuWidget;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.logical.shared.HasSelectionHandlers;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.ResizeComposite;
import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.SplitLayoutPanel;
import com.google.gwt.user.client.ui.TreeItem;
import com.google.gwt.user.client.ui.Widget;

/**
 * PolicyContainer.
 */
public class PolicyContainer extends ResizeComposite implements HasWidgets, PolicyDashboard {

    /** The content panel. */
    protected SplitLayoutPanel contentPanel;
    Widget policyContent;
    PolicyMenuWidget menuWidget;

    /**
    * Instantiates a new policy container.
    */
    public PolicyContainer() {
        configureContent();
        initWidget(contentPanel);
    }

    /**
    * Configure content.
    * 
    * @return the split layout panel
    */
    protected SplitLayoutPanel configureContent() {
        contentPanel = new SplitLayoutPanel();
        contentPanel.addWest(initMenuView(), 150);
        return contentPanel;
    }

    /**
    * Inits the menu view.
    * 
    * @return the widget
    */
    protected Widget initMenuView() {
        ScrollPanel scroller = new ScrollPanel();
        menuWidget = new PolicyMenuWidget();
        scroller.add(menuWidget);
        return scroller;
    }

    /* (non-Javadoc)
     * @see com.google.gwt.user.client.ui.HasWidgets#add(com.google.gwt.user.client.ui.Widget)
     */
    public void add(Widget arg0) {
        if (policyContent != null) {
            contentPanel.remove(policyContent);
        }

        GWT.log(arg0.getClass().getName() + "as policy content");
        policyContent = arg0;
        contentPanel.add(policyContent);
    }

    /* (non-Javadoc)
     * @see com.google.gwt.user.client.ui.HasWidgets#clear()
     */
    public void clear() {
        if (policyContent != null) {
            contentPanel.remove(policyContent);
            policyContent = null;
        }
        this.onResize();
    }

    /* (non-Javadoc)
     * @see com.google.gwt.user.client.ui.HasWidgets#iterator()
     */
    public Iterator<Widget> iterator() {
        return this.contentPanel.iterator();
    }

    /* (non-Javadoc)
     * @see com.google.gwt.user.client.ui.HasWidgets#remove(com.google.gwt.user.client.ui.Widget)
     */
    public boolean remove(Widget arg0) {
        boolean result = contentPanel.remove(arg0);
        if (arg0 == policyContent)
            policyContent = null;

        return result;

    }

    /**
    * Activate.
    * 
    * @param view
    *            the view
    * @see org.ebayopensource.turmeric.policy.adminui.client.view.PolicyDashboard#activate(org.ebayopensource.turmeric.policy.adminui.client.Display)
    */
    @Override
    public void activate(Display view) {

    }

    /* (non-Javadoc)
     * @see org.ebayopensource.turmeric.policy.adminui.client.PolicyDashboard#setActions(java.util.List)
     */
    public void setActions(List<UserAction> actions) {
        this.menuWidget.setActions(actions);
    }

    /**
    * Gets the selector.
    * 
    * @return the selector
    * @see org.ebayopensource.turmeric.policy.adminui.client.view.PolicyDashboard#getSelector()
    */
    @Override
    public HasSelectionHandlers<TreeItem> getSelector() {
        return menuWidget.getSelector();
    }

    /* (non-Javadoc)
     * @see org.ebayopensource.turmeric.policy.adminui.client.PolicyDashboard#setSelected(org.ebayopensource.turmeric.policy.adminui.client.model.UserAction)
     */
    public void setSelected(UserAction action) {
        GWT.log("UserAction selected:" + action);
        this.menuWidget.setSelected(action);
    }

    /**
    * Error.
    * 
    * @param err
    *            the err
    * @see org.ebayopensource.turmeric.policy.adminui.client.PolicyDashboard#error(java.lang.String)
    */
    @Override
    public void error(String err) {
        ErrorDialog dialog = new ErrorDialog(true);
        dialog.setMessage(err);
        dialog.getDialog().center();
        dialog.show();
    }

}