Java tutorial
/* * JBoss, Home of Professional Open Source * Copyright 2011 Red Hat Inc. and/or its affiliates and other contributors * as indicated by the @author tags. All rights reserved. * See the copyright.txt in the distribution for a * full listing of individual contributors. * * This copyrighted material is made available to anyone wishing to use, * modify, copy, or redistribute it subject to the terms and conditions * of the GNU Lesser General Public License, v. 2.1. * This program is distributed in the hope that it will be useful, but WITHOUT A * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public License, * v.2.1 along with this distribution; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ package org.jboss.as.console.client.standalone.deployment; import com.google.gwt.cell.client.ImageResourceCell; import com.google.gwt.dom.client.Style; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.resources.client.ImageResource; import com.google.gwt.user.cellview.client.Column; import com.google.gwt.user.cellview.client.TextColumn; 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.VerticalPanel; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.view.client.ListDataProvider; import org.jboss.as.console.client.Console; import org.jboss.as.console.client.core.SuspendableViewImpl; import org.jboss.as.console.client.shared.deployment.DeploymentCommand; import org.jboss.as.console.client.shared.deployment.DeploymentCommandColumn; import org.jboss.as.console.client.shared.model.DeploymentRecord; import org.jboss.ballroom.client.widgets.ContentHeaderLabel; import org.jboss.ballroom.client.widgets.tabs.FakeTabPanel; import org.jboss.ballroom.client.widgets.tables.DefaultPager; import org.jboss.ballroom.client.widgets.icons.Icons; import org.jboss.ballroom.client.widgets.tables.DefaultCellTable; import org.jboss.ballroom.client.widgets.tools.ToolButton; import org.jboss.ballroom.client.widgets.tools.ToolStrip; import java.util.List; /** * @author Heiko Braun * @author Stan Silvert * @date 3/14/11 */ public class DeploymentListView extends SuspendableViewImpl implements DeploymentListPresenter.MyView { private DeploymentListPresenter presenter; private DefaultCellTable<DeploymentRecord> deploymentTable; private ListDataProvider<DeploymentRecord> deploymentProvider; @Override public void setPresenter(DeploymentListPresenter presenter) { this.presenter = presenter; } @Override public void updateDeploymentInfo(List<DeploymentRecord> deployments) { deploymentProvider.setList(deployments); } @Override public Widget createWidget() { LayoutPanel layout = new LayoutPanel(); FakeTabPanel titleBar = new FakeTabPanel(Console.CONSTANTS.common_label_deployments()); layout.add(titleBar); final ToolStrip toolStrip = new ToolStrip(); toolStrip .addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_addContent(), new ClickHandler() { @Override public void onClick(ClickEvent event) { presenter.launchNewDeploymentDialoge(); } })); layout.add(toolStrip); VerticalPanel panel = new VerticalPanel(); panel.setStyleName("rhs-content-panel"); // ----------- ContentHeaderLabel nameLabel = new ContentHeaderLabel(Console.CONSTANTS.common_label_deployments()); HorizontalPanel horzPanel = new HorizontalPanel(); horzPanel.getElement().setAttribute("style", "width:100%;"); horzPanel.add(nameLabel); panel.add(horzPanel); deploymentTable = new DefaultCellTable<DeploymentRecord>(10); deploymentProvider = new ListDataProvider<DeploymentRecord>(); deploymentProvider.addDataDisplay(deploymentTable); TextColumn<DeploymentRecord> dplNameColumn = new TextColumn<DeploymentRecord>() { @Override public String getValue(DeploymentRecord record) { return record.getName(); } }; TextColumn<DeploymentRecord> dplRuntimeColumn = new TextColumn<DeploymentRecord>() { @Override public String getValue(DeploymentRecord record) { return record.getRuntimeName(); } }; deploymentTable.addColumn(dplNameColumn, Console.CONSTANTS.common_label_name()); deploymentTable.addColumn(dplRuntimeColumn, Console.CONSTANTS.common_label_runtimeName()); deploymentTable.addColumn(makeEnabledColumn(), Console.CONSTANTS.common_label_enabled()); deploymentTable.addColumn(new DeploymentCommandColumn(this.presenter, DeploymentCommand.ENABLE_DISABLE), Console.CONSTANTS.common_label_enOrDisable()); deploymentTable.addColumn( new DeploymentCommandColumn(this.presenter, DeploymentCommand.REMOVE_FROM_STANDALONE), Console.CONSTANTS.common_label_remove()); panel.add(deploymentTable); DefaultPager pager = new DefaultPager(); pager.setDisplay(deploymentTable); panel.add(pager); ScrollPanel scroll = new ScrollPanel(); scroll.add(panel); layout.add(scroll); layout.setWidgetTopHeight(titleBar, 0, Style.Unit.PX, 40, Style.Unit.PX); layout.setWidgetTopHeight(toolStrip, 40, Style.Unit.PX, 30, Style.Unit.PX); layout.setWidgetTopHeight(scroll, 70, Style.Unit.PX, 100, Style.Unit.PCT); return layout; } // Refactor Me! Copied from org.jboss.as.console.client.domain.groups.deployment.DeploymentsOverview private Column makeEnabledColumn() { return new Column<DeploymentRecord, ImageResource>(new ImageResourceCell()) { @Override public ImageResource getValue(DeploymentRecord deployment) { ImageResource res = null; if (deployment.isEnabled()) { res = Icons.INSTANCE.statusGreen_small(); } else { res = Icons.INSTANCE.statusRed_small(); } return res; } }; } }