/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 de.unioninvestment.eai.portal.portlet.crud.mvp.views;
import java.util.List;
import com.vaadin.data.Item;
import com.vaadin.data.fieldgroup.FieldGroup.CommitException;
import de.unioninvestment.eai.portal.portlet.crud.domain.model.ContainerBlob;
import de.unioninvestment.eai.portal.portlet.crud.domain.model.ContainerRow;
import de.unioninvestment.eai.portal.portlet.crud.domain.model.Table;
import de.unioninvestment.eai.portal.portlet.crud.domain.model.TableColumn;
/**
*
* Bei einspaltiger Ansicht werden die Felder untereinander, und links davon als
* Label jeweils die Titel angezeigt. Bei mehrspaltiger Ansicht werden die Label
* über den Eingabefeldern angezeigt.
*
* Unter den Eingabefeldern werden Aktions-Buttons horizontal angeordnet
* dargestellt.
*
*/
public interface RowEditingFormView extends PanelContentView {
/**
* Interface für den Zugrifft auf den Presenter für die View.
*
*
* @author siva.selvarajah
*/
public interface Presenter {
/**
* Speichert den aktuellen Datensatz.
*/
void save();
/**
* Löscht den aktuellen Datensatz.
*/
void delete();
/**
* @return <code>true</code>, falls es eine vorherige Zeile gibt
*/
boolean hasPreviousRow();
/**
* @return <code>true</code>, falls es eine nachfolgende Zeile gibt
*/
boolean hasNextRow();
/**
* Läd die nächste Zeile.
*
* @return Ob, eine nächste Zeile existiert
*/
boolean nextRow();
/**
* Läd die vorherige Zeile.
*
* @return Ob, eine vorherige Zeile existiert
*/
boolean previousRow();
/**
* Setzt die Werte aller Felder zurück.
*/
void resetFields();
/**
* Schießt den Editierdilog.
*/
void cancel();
public List<String> getVisibleFields();
void addLobFields(Item item);
void changeMode();
}
/**
* Initialisiert die View.
*
* @param presenter
* EditingForm-Presenter
*/
void initialize(Presenter presenter, Table tableModel);
/**
* Zeigt einen Datensatz im Formular-Dialog an.
*
* @param row
* @param editable
* <code>true</code>, if the form should provide editing
* capabilities
* @param deletable
* <code>true</code>, if the form should provide row deletion
*
* @param item
* Datensatz
*/
void displayRow(ContainerRow row, boolean editable, boolean deletable);
boolean isFieldModifed(String fieldName);
public void addBlobField(ContainerRow row, TableColumn tableColumn,
ContainerBlob containerBlob, boolean readonly);
void discard();
void commit() throws CommitException;
void showFormError(String message);
void addClobField(TableColumn tableColumn, boolean readOnly);
void hideFormError();
void updateButtonsForViewMode();
void updateButtonsForEditMode();
}