eml.studio.client.mvp.view.MonitorView.java Source code

Java tutorial

Introduction

Here is the source code for eml.studio.client.mvp.view.MonitorView.java

Source

/**
 * Copyright 2017 Institute of Computing Technology, Chinese Academy of Sciences.
 * Licensed under the terms of the Apache 2.0 license.
 * Please see LICENSE file in the project root for terms
 */
package eml.studio.client.mvp.view;

import eml.studio.client.OozieConnectionFactory;
import eml.studio.client.controller.DiagramController;
import eml.studio.client.controller.MonitorController;
import eml.studio.client.mvp.AppController;
import eml.studio.client.ui.panel.Grid.SearchGrid;
import eml.studio.client.mvp.presenter.MonitorPresenter;
import eml.studio.client.ui.tree.*;
import eml.studio.client.util.Constants;
import eml.studio.client.ui.panel.HistoryPopupPanel;
import eml.studio.client.ui.panel.JobDescPopupPanel;
import eml.studio.client.ui.panel.ParameterPopupPanel;
import eml.studio.client.ui.panel.Grid.MonitorJobDescGrid;
import eml.studio.client.ui.widget.DisclosureStackPanel;
import eml.studio.client.ui.widget.program.ProgramWidget;

import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.layout.client.Layout.Alignment;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DisclosurePanel;
import com.google.gwt.user.client.ui.DockLayoutPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.LayoutPanel;
import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.SplitLayoutPanel;
import com.google.gwt.user.client.ui.StackLayoutPanel;
import com.google.gwt.user.client.ui.TabPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;

public class MonitorView extends Generator implements MonitorPresenter.View {
    private Button refreshBtn = new Button(Constants.studioUIMsg.refresh());
    private Button cloneBtn = new Button(Constants.studioUIMsg.clone());
    private Button stopBtn = new Button(Constants.studioUIMsg.stop());
    private Button submitBtn = new Button(Constants.studioUIMsg.submit());
    private Button clearBtn = new Button(Constants.studioUIMsg.clear());
    private Button historyBtn = new Button(Constants.studioUIMsg.runHistory());

    private HeaderView headerView = new HeaderView();

    private TabPanel tabPanel = new TabPanel();
    private ProgramTree programTree;
    private DatasetTree datasetTree;
    private JobTree jobTree;
    private SearchTree resultTree;
    private MonitorJobDescGrid jobDescGrid;
    private SearchGrid searchGrid;
    private JobDescPopupPanel newJob = new JobDescPopupPanel(Constants.studioUIMsg.createJob());
    protected ParameterPopupPanel paramPopup = new ParameterPopupPanel();
    private Widget mainLayout;
    private DiagramController nowDiagramColler;
    private HistoryPopupPanel historyPopupPanel;

    LayoutPanel layoutPanel = new LayoutPanel();
    HorizontalPanel btnPanel2 = new HorizontalPanel();

    public MonitorView() {
        mainLayout = this.createMainLayout();
    }

    public void initTabPanel() {
        tabPanel.clear();
        tabPanel.setWidth("100%");
        tabPanel.setTitle("myDisclosurePanel-headerView");
        tabPanel.add(programTree, Constants.studioUIMsg.program(), true);
        tabPanel.add(datasetTree, Constants.studioUIMsg.data(), true);
        tabPanel.add(jobTree, Constants.studioUIMsg.job(), true);
        tabPanel.selectTab(0);
    }

    @Override
    public Widget createMainLayout() {
        SplitLayoutPanel splitLayout = new SplitLayoutPanel();

        StackLayoutPanel stack = new StackLayoutPanel(Unit.EM);
        stack.setStyleName("sp");
        ScrollPanel leftcrp = new ScrollPanel();
        leftcrp.setSize("100%", "100%");
        VerticalPanel vPanel = new VerticalPanel();
        vPanel.setWidth("100%");

        programTree = ProgramTreeLoader.load(AppController.email);
        datasetTree = DatasetTreeLoader.load(AppController.email);
        jobTree = JobTreeLoader.load(AppController.email);
        resultTree = new SearchTree();
        initTabPanel();
        DisclosurePanel distackleft = new DisclosureStackPanel("Search").asWidget();
        searchGrid = new SearchGrid(programTree, datasetTree, jobTree, resultTree);
        distackleft.setContent(searchGrid);
        SimplePanel tabSimPanel = new SimplePanel();
        tabSimPanel.add(tabPanel);

        vPanel.add(tabSimPanel);
        vPanel.add(distackleft);
        leftcrp.add(vPanel);
        stack.add(leftcrp, "", 0);

        StackLayoutPanel stackright = new StackLayoutPanel(Unit.EM);
        stackright.setStyleName("sp");
        DisclosurePanel distackright1 = new DisclosureStackPanel(Constants.studioUIMsg.jobPanelTitle()).asWidget();
        DisclosurePanel distackright2 = new DisclosureStackPanel(Constants.studioUIMsg.modulePanelTitle())
                .asWidget();
        ScrollPanel scvp = new ScrollPanel();
        VerticalPanel verticalPanel = new VerticalPanel();
        verticalPanel.setWidth("100%");

        HorizontalPanel btnPanel = new HorizontalPanel();
        historyBtn.removeStyleName("gwt-Button");
        historyBtn.addStyleName("history-button-style");
        submitBtn.setEnabled(false);
        submitBtn.removeStyleName("gwt-Button");
        submitBtn.addStyleName("button-style");
        clearBtn.removeStyleName("gwt-Button");
        clearBtn.addStyleName("button-style");
        cloneBtn.removeStyleName("gwt-Button");
        cloneBtn.addStyleName("button-style");
        refreshBtn.removeStyleName("gwt-Button");
        refreshBtn.addStyleName("button-style");
        stopBtn.removeStyleName("gwt-Button");
        stopBtn.addStyleName("button-style");

        btnPanel.add(historyBtn);
        btnPanel.add(new HTML("  "));
        btnPanel.add(submitBtn);
        btnPanel.add(new HTML("  "));
        btnPanel.add(clearBtn);
        btnPanel.add(new HTML("  "));
        btnPanel.add(cloneBtn);
        btnPanel.add(new HTML("  "));
        btnPanel.add(stopBtn);
        btnPanel.add(new HTML("  "));
        btnPanel.add(refreshBtn);

        btnPanel2.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
        btnPanel2.add(btnPanel);
        btnPanel2.addStyleName("btnPanel");

        splitLayout.addWest(stack, 200);

        jobDescGrid = new MonitorJobDescGrid();

        distackright1.setContent(jobDescGrid);
        distackright2.setContent(propPanel);
        verticalPanel.add(distackright1);
        verticalPanel.add(distackright2);
        scvp.add(verticalPanel);
        stackright.add(scvp, "", 0);
        splitLayout.addEast(stackright, 287);

        // Use different controllers in different classes
        setController(new MonitorController(Constants.CONTROLLER_WIDTH, Constants.CONTROLLER_HEIGHT));
        rebuiltLayoutPanel(getController());
        splitLayout.add(layoutPanel);

        return splitLayout;
    }

    @Override
    public Button getClearButton() {
        return clearBtn;
    }

    @Override
    public Button getSubmitButton() {
        return submitBtn;
    }

    @Override
    public Button getRefreshButton() {
        return refreshBtn;
    }

    @Override
    public Button getCloneButton() {
        return cloneBtn;
    }

    @Override
    public TabPanel getTabPanel() {
        return tabPanel;
    }

    @Override
    public ProgramTree getProgramTree() {
        return programTree;
    }

    @Override
    public DatasetTree getDatasetTree() {
        return datasetTree;
    }

    @Override
    public JobTree getJobTree() {
        return jobTree;
    }

    @Override
    public SearchTree getResultTree() {
        return resultTree;
    }

    @Override
    public MonitorJobDescGrid getJobDescGrid() {
        return jobDescGrid;
    }

    @Override
    public Button getStopButton() {
        return stopBtn;
    }

    @Override
    public Button getHistoryButton() {
        return historyBtn;
    }

    @Override
    public MonitorController getController() {
        return (MonitorController) super.getController();
    }

    @Override
    public ParameterPopupPanel getParamPopup() {
        return paramPopup;
    }

    @Override
    public ProgramWidget getPopupWidget() {
        return programTree.getPopupWidget();
    }

    @Override
    public Widget asWidget() {

        DockLayoutPanel dockLayout = new DockLayoutPanel(Unit.PX);

        dockLayout.addNorth(headerView, 35);
        dockLayout.add(mainLayout);

        return dockLayout;
    }

    @Override
    public HeaderView getHeaderView() {
        return headerView;
    }

    @Override
    public JobDescPopupPanel getNewJobPopup() {
        return this.newJob;
    }

    public LayoutPanel getLayoutPanel() {
        return layoutPanel;
    }

    public void setLayoutPanel(LayoutPanel layoutPanel) {
        this.layoutPanel = layoutPanel;
    }

    @Override
    public DiagramController getNowDiagramColler() {
        return nowDiagramColler;
    }

    public void setNowDiagramColler(DiagramController nowDiagramColler) {
        this.nowDiagramColler = nowDiagramColler;
    }

    public void rebuiltLayoutPanel(DiagramController controller) {
        controller.setGenerator(this);
        controller.setConnectionFactory(OozieConnectionFactory.singleton);
        nowDiagramColler = controller;

        if (AppController.email.equals("guest") || !AppController.power.split("")[2].equals("1")) {
        }

        layoutPanel.clear();
        layoutPanel.add(btnPanel2);
        layoutPanel.setWidgetVerticalPosition(btnPanel2, Alignment.END);
        layoutPanel.add(controller.getViewAsScrollPanel());
    }

    @Override
    public HistoryPopupPanel getHistoryPopup(String jobId, boolean isExample, HandlerManager eventBus) {
        // TODO Auto-generated method stub
        historyPopupPanel = new HistoryPopupPanel(jobId, isExample, eventBus);
        return historyPopupPanel;
    }

}