com.qualogy.qafe.gwt.client.vo.functions.execute.ShowPanelExecute.java Source code

Java tutorial

Introduction

Here is the source code for com.qualogy.qafe.gwt.client.vo.functions.execute.ShowPanelExecute.java

Source

/**
 * Copyright 2008-2015 Qualogy Solutions B.V.
 *
 * 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 com.qualogy.qafe.gwt.client.vo.functions.execute;

import java.util.List;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.UIObject;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.widgetideas.table.client.overrides.FlexTable;
import com.qualogy.qafe.gwt.client.component.ShowPanelComponent;
import com.qualogy.qafe.gwt.client.ui.renderer.AnyComponentRenderer;
import com.qualogy.qafe.gwt.client.util.ComponentRepository;
import com.qualogy.qafe.gwt.client.vo.functions.BuiltInFunctionGVO;
import com.qualogy.qafe.gwt.client.vo.functions.ShowPanelGVO;
import com.qualogy.qafe.gwt.client.vo.handlers.BuiltinHandlerHelper;

@Deprecated
public class ShowPanelExecute implements ExecuteCommand {

    private static final Object CENTER_POSITION = "center";

    @SuppressWarnings("deprecation")
    public void execute(BuiltInFunctionGVO builtInFunction) {
        if (builtInFunction instanceof ShowPanelGVO) {
            ShowPanelGVO showPanelGVO = (ShowPanelGVO) builtInFunction;
            String id = "showPanel_" + showPanelGVO.getBuiltInComponentGVO().getComponentIdUUID();
            final ShowPanelComponent showPanel = new ShowPanelComponent(showPanelGVO.isAutoHide(),
                    showPanelGVO.isModal(), showPanelGVO.getLeft(), showPanelGVO.getTop());

            // We have to make sure that all other showPanels using the same panel-definition is cleared
            List<UIObject> uiObjects = ComponentRepository.getInstance().getComponent(id);
            if (uiObjects != null) {
                UIObject uiObject = uiObjects.iterator().next();
                if (uiObject instanceof ShowPanelComponent) {
                    ShowPanelComponent showPanelComponent = (ShowPanelComponent) uiObject;
                    showPanelComponent.hide();// This will call showPanelComponent.onDetach()
                }
            }

            UIObject ui = AnyComponentRenderer.getInstance().render(showPanelGVO.getSrc(), showPanelGVO.getUuid(),
                    showPanelGVO.getBuiltInComponentGVO().getWindowId(), showPanelGVO.getSrc().getContext());
            Widget w = null;

            if (ui instanceof Widget) {
                w = (Widget) ui;
            }

            FlexTable panel = new FlexTable();
            if (!showPanelGVO.isAutoHide()) {
                Label close = new Label("X");
                close.setStyleName("qafe_close_on_showPanel");
                close.addClickHandler(new ClickHandler() {
                    public void onClick(ClickEvent event) {
                        showPanel.hide();
                    }
                });
                panel.setWidget(0, 1, close);
            }
            panel.setWidget(1, 0, w);
            showPanel.setWidget(panel);

            showPanel.setId(id);
            showPanel.setWindow(showPanelGVO.getBuiltInComponentGVO().getWindowId());
            String componentUUID = showPanelGVO.getBuiltInComponentGVO().getComponentIdUUID();
            String windowIdentifier = componentUUID.substring(componentUUID.indexOf('|'));
            windowIdentifier = showPanelGVO.getBuiltInComponentGVO().getWindowId() + windowIdentifier;
            showPanel.setWindowIdentifier(windowIdentifier);
            // Adding to component repository to be picked up when executing close-panel.            
            ComponentRepository.getInstance().putComponent(id, (UIObject) showPanel);

            handleMask(showPanelGVO, id, windowIdentifier);

            showPanel.show();

            handleStyle(showPanelGVO, showPanel, w);
            handleSize(showPanelGVO, showPanel, panel);

            String position = showPanelGVO.getPosition();
            if (CENTER_POSITION.equals(position)) {
                showPanel.center();
            }
        }
    }

    private void handleMask(ShowPanelGVO showPanelGVO, String id, String windowIdentifier) {
        String windowId = showPanelGVO.getBuiltInComponentGVO().getWindowId();
        BuiltinHandlerHelper.handleMask(showPanelGVO, id, windowIdentifier, windowId);
    }

    private void handleStyle(ShowPanelGVO showPanelGVO, ShowPanelComponent showPanel, UIObject widget) {
        BuiltinHandlerHelper.handleStyle(showPanelGVO, showPanel, widget);
    }

    private void handleSize(ShowPanelGVO showPanelGVO, ShowPanelComponent showPanel, UIObject container) {
        BuiltinHandlerHelper.handleSize(showPanelGVO, showPanel, container);
    }
}