Java tutorial
/* * Copyright 2014 Alen Caljkusic. * * 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.zklogtool.web.components; import java.io.File; import java.io.IOException; import com.vaadin.annotations.AutoGenerated; import com.vaadin.server.UserError; import com.vaadin.ui.AbsoluteLayout; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickListener; import com.vaadin.ui.CustomComponent; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Label; import com.vaadin.ui.TabSheet; import com.vaadin.ui.TabSheet.Tab; import com.vaadin.ui.TextField; import com.vaadin.ui.Tree; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.Window; import com.zklogtool.data.DataState; import com.zklogtool.reader.CRCValidationException; import com.zklogtool.reader.SnapshotFileReader; public class OpenSnapshotFileDialog extends CustomComponent { /*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */ @AutoGenerated private AbsoluteLayout mainLayout; @AutoGenerated private VerticalLayout verticalLayout_1; @AutoGenerated private Button openButton; @AutoGenerated private TextField snapshotFileLabel; @AutoGenerated private TextField tabNameLabel; public OpenSnapshotFileDialog(final TabSheet displayTabSheet, final Window windowHandle) { buildMainLayout(); setCompositionRoot(mainLayout); openButton.addClickListener(new ClickListener() { DataState dataState; @Override public void buttonClick(com.vaadin.ui.Button.ClickEvent event) { File snapshot = new File(snapshotFileLabel.getValue()); SnapshotFileReader snapReader = new SnapshotFileReader(snapshot, 0); SnapshotView snapshotView; if (!validateInputs()) { return; } try { dataState = snapReader.readFuzzySnapshot(); snapshotView = new SnapshotView(dataState); } catch (CRCValidationException e) { snapshotFileLabel .setComponentError(new UserError("CRC validation problem. File is probably corrupted")); return; } catch (IOException e) { snapshotFileLabel.setComponentError(new UserError("IO problem with file")); return; } HorizontalLayout horizontalLayout = new HorizontalLayout(); horizontalLayout.setCaption(tabNameLabel.getValue()); horizontalLayout.addComponent(snapshotView); horizontalLayout.setWidth("100%"); horizontalLayout.setHeight("100%"); Tab snapshotTab = displayTabSheet.addTab(horizontalLayout); snapshotTab.setClosable(true); displayTabSheet.setSelectedTab(snapshotTab); windowHandle.close(); } }); } boolean validateInputs() { boolean isOk = true; if (snapshotFileLabel.getValue().isEmpty()) { snapshotFileLabel.setComponentError(new UserError("File path must be provided")); isOk = false; } else { snapshotFileLabel.setComponentError(null); } if (tabNameLabel.getValue().isEmpty()) { tabNameLabel.setComponentError(new UserError("Name must be provided")); isOk = false; } else { tabNameLabel.setComponentError(null); } return isOk; } @AutoGenerated private AbsoluteLayout buildMainLayout() { // common part: create layout mainLayout = new AbsoluteLayout(); mainLayout.setImmediate(false); mainLayout.setWidth("100%"); mainLayout.setHeight("100%"); // top-level component properties setWidth("100.0%"); setHeight("100.0%"); // verticalLayout_1 verticalLayout_1 = buildVerticalLayout_1(); mainLayout.addComponent(verticalLayout_1, "top:0.0px;left:0.0px;"); return mainLayout; } @AutoGenerated private VerticalLayout buildVerticalLayout_1() { // common part: create layout verticalLayout_1 = new VerticalLayout(); verticalLayout_1.setImmediate(false); verticalLayout_1.setWidth("-1px"); verticalLayout_1.setHeight("-1px"); verticalLayout_1.setMargin(true); verticalLayout_1.setSpacing(true); // textField_2 tabNameLabel = new TextField(); tabNameLabel.setCaption("Name"); tabNameLabel.setImmediate(false); tabNameLabel.setWidth("-1px"); tabNameLabel.setHeight("-1px"); tabNameLabel.setRequired(true); verticalLayout_1.addComponent(tabNameLabel); // textField_1 snapshotFileLabel = new TextField(); snapshotFileLabel.setCaption("Snapshot file to open"); snapshotFileLabel.setImmediate(false); snapshotFileLabel.setWidth("540px"); snapshotFileLabel.setHeight("-1px"); snapshotFileLabel.setRequired(true); verticalLayout_1.addComponent(snapshotFileLabel); // button_1 openButton = new Button(); openButton.setCaption("Open"); openButton.setImmediate(true); openButton.setWidth("-1px"); openButton.setHeight("-1px"); verticalLayout_1.addComponent(openButton); return verticalLayout_1; } }