/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* Copyright (c) 2013, MPL CodeInside http://codeinside.ru
*/
package ru.codeinside.gses.webui.manager;
import com.vaadin.ui.*;
import org.tepi.filtertable.FilterTable;
import java.io.Serializable;
public class DirectoryPanel implements Serializable {
static Component createDirectoryPanel() {
HorizontalSplitPanel horSplit = new HorizontalSplitPanel();
horSplit.setSizeFull();
horSplit.setMargin(true);
Panel panel00 = new Panel();
Panel panel01 = new Panel();
Panel panel10 = new Panel();
horSplit.setFirstComponent(panel00);
VerticalLayout vl = new VerticalLayout();
horSplit.setSecondComponent(vl);
vl.addComponent(panel01);
vl.addComponent(panel10);
vl.setSpacing(true);
horSplit.setWidth("100%");
vl.setHeight("100%");
panel00.setHeight("100%");
panel00.setWidth("100%");
panel01.setWidth("100%");
panel01.setHeight("100%");
panel10.setHeight("100%");
horSplit.setSplitPosition(35);
vl.setExpandRatio(panel01, 0.25f);
vl.setExpandRatio(panel10, 0.75f);
final Table dirMapTable = ManagerWorkplace.createDirectoryMapTable();
final FilterTable directoryTable = ManagerWorkplace.createDirectoryTable();
dirMapTable.setVisible(false);
final Form createFieldForm = new Form();
createFieldForm.setCaption("Добавление значения в справочник");
final TextField keyField = new TextField("Ключ");
keyField.setRequired(true);
keyField.setMaxLength(254);
createFieldForm.addField("key", keyField);
final TextField valField = new TextField("Значение");
valField.setRequired(true);
valField.setMaxLength(1022);
createFieldForm.addField("val", valField);
createFieldForm.setVisible(false);
Button addButton = new Button("Сохранить", new AddTupleButtonListener(createFieldForm, directoryTable, keyField, valField, dirMapTable));
createFieldForm.addField("submit", addButton);
directoryTable.addListener(new DirectoryTableChangeListener(createFieldForm, directoryTable, dirMapTable));
ManagerWorkplace.buildContainer(directoryTable, createFieldForm, dirMapTable);
directoryTable.setColumnHeaders(new String[]{"Название", "", ""});
final Form createDirectory = new Form();
createDirectory.setCaption("Создание справочника");
final TextField field = new TextField("Название");
field.setRequired(true);
field.setMaxLength(255);
field.setRequiredError("Введите название справочника");
createDirectory.addField("name", field);
Button createButton = new Button("Сохранить", new CreateDirectoryButtonListener( field, createDirectory, directoryTable));
createDirectory.addField("submit", createButton);
Panel loadPanel = new Panel();
loadPanel.setCaption("Импорт справочников");
UploadDirectory events = new UploadDirectory(directoryTable, dirMapTable);
Upload c = new Upload("", events);
c.addListener(events);
c.setButtonCaption("Загрузить");
loadPanel.addComponent(c);
VerticalLayout verticalLayout = new VerticalLayout();
verticalLayout.setSizeFull();
verticalLayout.setSpacing(true);
verticalLayout.addComponent(loadPanel);
verticalLayout.addComponent(createDirectory);
verticalLayout.addComponent(directoryTable);
panel00.addComponent(verticalLayout);
panel01.addComponent(createFieldForm);
dirMapTable.setSizeFull();
dirMapTable.setPageLength(13);
panel10.addComponent(dirMapTable);
return horSplit;
}
}