blob: d76942a9a695ba68d09ffd7fb209d0a6ddfd1507 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 BSI Business Systems Integration AG.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* BSI Business Systems Integration AG - initial API and implementation
******************************************************************************/
package com.bsiag.miniapp.client.ui.forms;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Date;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriter;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.scout.commons.DateUtility;
import org.eclipse.scout.commons.IOUtility;
import org.eclipse.scout.commons.StringUtility;
import org.eclipse.scout.commons.annotations.FormData;
import org.eclipse.scout.commons.annotations.FormData.SdkCommand;
import org.eclipse.scout.commons.annotations.Order;
import org.eclipse.scout.commons.dnd.FileListTransferObject;
import org.eclipse.scout.commons.dnd.TransferObject;
import org.eclipse.scout.commons.exception.ProcessingException;
import org.eclipse.scout.commons.logger.IScoutLogger;
import org.eclipse.scout.commons.logger.ScoutLogManager;
import org.eclipse.scout.rt.client.ClientSyncJob;
import org.eclipse.scout.rt.client.ui.IDNDSupport;
import org.eclipse.scout.rt.client.ui.action.menu.AbstractMenu;
import org.eclipse.scout.rt.client.ui.action.menu.IMenu;
import org.eclipse.scout.rt.client.ui.basic.table.AbstractTable;
import org.eclipse.scout.rt.client.ui.basic.table.ITableRow;
import org.eclipse.scout.rt.client.ui.basic.table.columns.AbstractDateColumn;
import org.eclipse.scout.rt.client.ui.basic.table.columns.AbstractDoubleColumn;
import org.eclipse.scout.rt.client.ui.basic.table.columns.AbstractLongColumn;
import org.eclipse.scout.rt.client.ui.basic.table.columns.AbstractSmartColumn;
import org.eclipse.scout.rt.client.ui.basic.table.columns.AbstractStringColumn;
import org.eclipse.scout.rt.client.ui.form.AbstractForm;
import org.eclipse.scout.rt.client.ui.form.AbstractFormHandler;
import org.eclipse.scout.rt.client.ui.form.fields.IFormField;
import org.eclipse.scout.rt.client.ui.form.fields.booleanfield.AbstractBooleanField;
import org.eclipse.scout.rt.client.ui.form.fields.button.AbstractButton;
import org.eclipse.scout.rt.client.ui.form.fields.button.AbstractCancelButton;
import org.eclipse.scout.rt.client.ui.form.fields.button.AbstractOkButton;
import org.eclipse.scout.rt.client.ui.form.fields.doublefield.AbstractDoubleField;
import org.eclipse.scout.rt.client.ui.form.fields.groupbox.AbstractGroupBox;
import org.eclipse.scout.rt.client.ui.form.fields.imagebox.AbstractImageField;
import org.eclipse.scout.rt.client.ui.form.fields.imagebox.IImageField;
import org.eclipse.scout.rt.client.ui.form.fields.listbox.AbstractListBox;
import org.eclipse.scout.rt.client.ui.form.fields.smartfield.AbstractSmartField;
import org.eclipse.scout.rt.client.ui.form.fields.stringfield.AbstractStringField;
import org.eclipse.scout.rt.client.ui.form.fields.tabbox.AbstractTabBox;
import org.eclipse.scout.rt.client.ui.form.fields.tablefield.AbstractTableField;
import org.eclipse.scout.rt.shared.TEXTS;
import com.bsiag.miniapp.client.ClientSession;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.AlreadyExists_Button;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.CancelButton;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.DetailBox;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.DetailBox.AddressTableField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.DetailBox.CompanyTypeField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.DetailBox.LanguageField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.DetailBox.RatingField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.DetailBox.RegionField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.DetailBox.SectorField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.GroupBox;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.GroupBox.ActiveField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.GroupBox.CompanyNoField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.GroupBox.CompanyShortNameField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.GroupBox.LogoField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.GroupBox.MainAccountManagerField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.GroupBox.NameField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.OkButton;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.TabBox;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.TabBox.AdditionalInformationBox;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.TabBox.AdditionalInformationBox.AdditionalInformationTableField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.TabBox.ChangesBox;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.TabBox.ChangesBox.ChangesTableField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.TabBox.DocumentsBox;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.TabBox.DocumentsBox.DocumentTableField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.TabBox.FinancialFiguresBox;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.TabBox.FinancialFiguresBox.FiguresTableField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.TabBox.FinancialFiguresBox.FiguresYtDTableField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.TabBox.FinancialFiguresBox.InvoicesDueField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.TabBox.FinancialFiguresBox.OpenBillsField;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.TabBox.NoteBox;
import com.bsiag.miniapp.client.ui.forms.CompanyForm.MainBox.TabBox.NoteBox.NotesField;
@FormData(value = com.bsiag.miniapp.shared.services.process.CompanyFormData.class, sdkCommand = SdkCommand.CREATE)
public class CompanyForm extends AbstractForm {
private static final IScoutLogger LOG = ScoutLogManager.getLogger(CompanyForm.class);
public static final String PROP_TEST = "abc";
private Long m_companyNr;
private boolean m_internal = false;
private boolean m_dataChangedTriggerDisabled;
@FormData
public Long getCompanyNr() {
return m_companyNr;
}
@FormData
public void setCompanyNr(Long value) {
m_companyNr = value;
}
public void aSimpleDummyMethod() {
}
@FormData
public boolean isInternal() {
return m_internal;
}
@FormData
public void setInternal(boolean value) {
m_internal = value;
}
public boolean isDataChangedTriggerDisabled() {
return m_dataChangedTriggerDisabled;
}
public void setDataChangedTriggerDisabled(boolean dataChangedTriggerDisabled) {
m_dataChangedTriggerDisabled = dataChangedTriggerDisabled;
}
public CompanyForm() throws ProcessingException {
super();
}
@Override
protected String getConfiguredTitle() {
return "Company";
}
public MainBox getMainBox() {
return (MainBox) getRootGroupBox();
}
public GroupBox getGroupBox() {
return getFieldByClass(GroupBox.class);
}
public CompanyShortNameField getCompanyShortNameField() {
return getFieldByClass(CompanyShortNameField.class);
}
public NameField getNameField() {
return getFieldByClass(NameField.class);
}
public CompanyNoField getCompanyNoField() {
return getFieldByClass(CompanyNoField.class);
}
public MainAccountManagerField getMainAccountManagerField() {
return getFieldByClass(MainAccountManagerField.class);
}
public ActiveField getActiveField() {
return getFieldByClass(ActiveField.class);
}
public DetailBox getDetailBox() {
return getFieldByClass(DetailBox.class);
}
public RegionField getRegionField() {
return getFieldByClass(RegionField.class);
}
public SectorField getSectorField() {
return getFieldByClass(SectorField.class);
}
public RatingField getRatingField() {
return getFieldByClass(RatingField.class);
}
public LogoField getLogoField() {
return getFieldByClass(LogoField.class);
}
public LanguageField getLanguageField() {
return getFieldByClass(LanguageField.class);
}
public CompanyTypeField getCompanyTypeField() {
return getFieldByClass(CompanyTypeField.class);
}
public AddressTableField getAddressTableField() {
return getFieldByClass(AddressTableField.class);
}
public TabBox getTabBox() {
return getFieldByClass(TabBox.class);
}
public NoteBox getNoteBox() {
return getFieldByClass(NoteBox.class);
}
public NotesField getNotesField() {
return getFieldByClass(NotesField.class);
}
public FinancialFiguresBox getFinancialFiguresBox() {
return getFieldByClass(FinancialFiguresBox.class);
}
public OpenBillsField getOpenBillsField() {
return getFieldByClass(OpenBillsField.class);
}
public FiguresYtDTableField getFiguresYtDTableField() {
return getFieldByClass(FiguresYtDTableField.class);
}
public InvoicesDueField getInvoicesDueField() {
return getFieldByClass(InvoicesDueField.class);
}
public FiguresTableField getFiguresTableField() {
return getFieldByClass(FiguresTableField.class);
}
public AdditionalInformationBox getAdditionalInformationBox() {
return getFieldByClass(AdditionalInformationBox.class);
}
public AdditionalInformationTableField getAdditionalInformationTableField() {
return getFieldByClass(AdditionalInformationTableField.class);
}
public DocumentsBox getDocumentsBox() {
return getFieldByClass(DocumentsBox.class);
}
public DocumentTableField getDocumentTableField() {
return getFieldByClass(DocumentTableField.class);
}
public ChangesBox getChangesBox() {
return getFieldByClass(ChangesBox.class);
}
public ChangesTableField getChangesTableField() {
return getFieldByClass(ChangesTableField.class);
}
public AlreadyExists_Button getAlreadyExists_Button() {
return getFieldByClass(AlreadyExists_Button.class);
}
public OkButton getOkButton() {
return getFieldByClass(OkButton.class);
}
public CancelButton getCancelButton() {
return getFieldByClass(CancelButton.class);
}
public void startModify() throws ProcessingException {
startInternal(new ModifyHandler());
}
public void startNew() throws ProcessingException {
startInternal(new NewHandler());
}
@Order(10.0f)
public class MainBox extends AbstractGroupBox {
@Order(10.0f)
public class GroupBox extends AbstractGroupBox {
@Order(10.0f)
public class CompanyShortNameField extends AbstractStringField {
@Override
protected int getConfiguredMaxLength() {
return 60;
}
@Override
protected String getConfiguredLabel() {
return TEXTS.get("CompanyShortName");
}
@Override
protected boolean getConfiguredMandatory() {
return true;
}
@Override
protected boolean getConfiguredFormatUpper() {
return true;
}
}
@Order(20.0f)
public class NameField extends AbstractStringField {
@Override
protected int getConfiguredMaxLength() {
return 250;
}
@Override
protected String getConfiguredLabel() {
return TEXTS.get("Name");
}
@Override
protected boolean getConfiguredMandatory() {
return true;
}
@Override
protected int getConfiguredGridH() {
return 2;
}
@Override
protected double getConfiguredGridWeightY() {
return 0;
}
@Override
protected boolean getConfiguredMultilineText() {
return true;
}
@Override
protected boolean getConfiguredWrapText() {
return true;
}
}
@Order(30.0f)
public class CompanyNoField extends AbstractStringField {
@Override
protected int getConfiguredMaxLength() {
return 60;
}
@Override
protected String getConfiguredLabel() {
return TEXTS.get("CompanyNo");
}
}
@Order(40.0f)
public class MainAccountManagerField extends AbstractSmartField<Long> {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("MainAccountManager");
}
@Override
protected boolean getConfiguredMandatory() {
return true;
}
}
@Order(50.0f)
public class ActiveField extends AbstractBooleanField {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("Active");
}
}
@Order(60.0f)
public class LogoField extends AbstractImageField {
@Override
protected int getConfiguredGridH() {
return 6;
}
@Override
protected double getConfiguredGridWeightY() {
return 0;
}
@Override
protected int getConfiguredHorizontalAlignment() {
return 1;
}
@Override
protected int getConfiguredVerticalAlignment() {
return -1;
}
@Override
protected boolean getConfiguredLabelVisible() {
return false;
}
@Override
protected boolean getConfiguredAutoFit() {
return true;
}
@Override
protected int getConfiguredDropType() {
return IDNDSupport.TYPE_FILE_TRANSFER;
}
@Override
protected int getConfiguredDragType() {
return IDNDSupport.TYPE_FILE_TRANSFER;
}
@Override
protected TransferObject execDragRequest() throws ProcessingException {
DocumentTableField.Table table = getDocumentTableField().getTable();
ITableRow row = findImageTableRow();
if (row != null) {
byte[] content = (byte[]) getImage();
String imageId = table.getNameColumn().getValue(row);
if (content != null && imageId != null) {
return new FileListTransferObject(IOUtility.createTempFile(imageId, content));
}
}
return null;
}
@Override
protected void execDropRequest(TransferObject t) throws ProcessingException {
}
private ITableRow findImageTableRow() throws ProcessingException {
DocumentTableField.Table table = getDocumentTableField().getTable();
for (ITableRow row : table.getRows()) {
String text = table.getDescriptionColumn().getValue(row);
if (text != null && text.toLowerCase().matches("logo")) {
return row;
}
}
return null;
}
public void updateImageLater() {
new ClientSyncJob("load image for company", ClientSession.get()) {
private int laterCount = 2;
@Override
protected void runVoid(IProgressMonitor monitor) throws Throwable {
if (laterCount > 0) {
laterCount--;
this.schedule();
}
else {
}
}
}.schedule();
}
public void insertImage(BufferedImage image) throws ProcessingException {
ByteArrayOutputStream buffer = new ByteArrayOutputStream(25000);
ImageWriter writer = ImageIO.getImageWritersByFormatName("jpeg").next();
try {
writer.setOutput(ImageIO.createImageOutputStream(buffer));
writer.write(image);
}
catch (IOException e) {
throw new ProcessingException("unable to drop image", e);
}
finally {
writer.dispose();
}
byte[] data = buffer.toByteArray();
try {
buffer.close();
}
catch (Exception e) {
}
buffer = null;
String name = StringUtility.concatenateTokens(getCompanyShortNameField().getValue(), "_", "logo", ".jpeg").replace(" ", "_");
insertImage(data, name);
}
public void insertImage(byte[] content, String path) throws ProcessingException {
try {
BufferedImage img = ImageIO.read(new ByteArrayInputStream(content));
int w = img.getWidth();
int h = img.getHeight();
if (w >= 16 && h > 100) {
float fl = 100f / h;
w = (int) (fl * w);
h = (int) (fl * h);
BufferedImage scaledImg = new BufferedImage(w, h, BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D gScaledImg = scaledImg.createGraphics();
gScaledImg.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
gScaledImg.drawImage(img, 0, 0, w, h, null);
gScaledImg.dispose();
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(scaledImg, "png", out);
content = out.toByteArray();
}
}
catch (Exception e) {
// nop
return;
}
setImage(content);
DocumentTableField.Table table = getDocumentTableField().getTable();
try {
table.setTableChanging(true);
//
ITableRow row = findImageTableRow();
if (row != null) {
if (row.isStatusNonchanged()) {
row.setStatusUpdated();
}
}
else {
row = table.addRow(table.createRow(), true);
table.getDescriptionColumn().setValue(row, "logo");
}
table.getNameColumn().setValue(row, path);
table.getRegisteredOnColumn().setValue(row, new Date());
table.getContentColumn().setValue(row, content);
table.getChangedOnColumn().setValue(row, new Date());
}
finally {
table.setTableChanging(false);
}
}
@Order(10)
public class AddMenu extends AbstractMenu {
@Override
protected String getConfiguredText() {
return TEXTS.get("AddLogoMenu");
}
@Override
protected void execAction() throws ProcessingException {
}
}
@Order(20)
public class DeleteMenu extends AbstractMenu {
@Override
protected String getConfiguredText() {
return TEXTS.get("Delete2");
}
@Override
protected void execInitAction() throws ProcessingException {
getLogoField().addPropertyChangeListener(IFormField.PROP_ENABLED, new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
updateVisibility();
}
});
getLogoField().addPropertyChangeListener(IImageField.PROP_IMAGE, new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
updateVisibility();
}
});
updateVisibility();
}
private void updateVisibility() {
setVisible(getLogoField().isEnabled() && getLogoField().getImage() != null);
}
@Override
protected void execAction() throws ProcessingException {
setImage(null);
ITableRow row = findImageTableRow();
if (row != null) {
row.delete();
}
}
}
}
}
@Order(20.0f)
public class DetailBox extends AbstractGroupBox {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("Detail");
}
@Order(10.0f)
public class RegionField extends AbstractSmartField<Long> {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("Region");
}
@Override
protected boolean getConfiguredMandatory() {
return true;
}
}
@Order(20.0f)
public class SectorField extends AbstractSmartField<Long> {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("Sector");
}
@Override
protected boolean getConfiguredMandatory() {
return true;
}
}
@Order(30.0f)
public class RatingField extends AbstractSmartField<Long> {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("Rating");
}
}
@Order(40.0f)
public class LanguageField extends AbstractSmartField<Long> {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("Language");
}
}
@Order(50.0f)
public class CompanyTypeField extends AbstractListBox<Long> {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("CompanyType");
}
@Override
protected boolean getConfiguredFilterCheckedRows() {
return true;
}
@Override
protected int getConfiguredGridH() {
return 4;
}
}
@Order(60.0f)
public class AddressTableField extends AbstractTableField<AddressTableField.Table> {
@Override
protected boolean getConfiguredLabelVisible() {
return false;
}
@Override
protected int getConfiguredGridW() {
return FULL_WIDTH;
}
@Override
protected int getConfiguredGridH() {
return 4;
}
@Order(10.0f)
public class Table extends AbstractTable {
@Override
protected Class<? extends IMenu> getConfiguredDefaultMenu() {
return EditMenu.class;
}
@Override
protected boolean getConfiguredAutoResizeColumns() {
return true;
}
public AddressTypeColumn getAddressTypeColumn() {
return getColumnSet().getColumnByClass(AddressTypeColumn.class);
}
public AdditionalNameColumn getAdditionalNameColumn() {
return getColumnSet().getColumnByClass(AdditionalNameColumn.class);
}
public StreetColumn getStreetColumn() {
return getColumnSet().getColumnByClass(StreetColumn.class);
}
public POBoxColumn getPOBoxColumn() {
return getColumnSet().getColumnByClass(POBoxColumn.class);
}
public CityColumn getCityColumn() {
return getColumnSet().getColumnByClass(CityColumn.class);
}
public PhoneColumn getPhoneColumn() {
return getColumnSet().getColumnByClass(PhoneColumn.class);
}
public FaxColumn getFaxColumn() {
return getColumnSet().getColumnByClass(FaxColumn.class);
}
public EMailColumn getEMailColumn() {
return getColumnSet().getColumnByClass(EMailColumn.class);
}
public WwwColumn getWwwColumn() {
return getColumnSet().getColumnByClass(WwwColumn.class);
}
@Order(10.0f)
public class AddressTypeColumn extends AbstractSmartColumn<Long> {
@Override
protected boolean getConfiguredPrimaryKey() {
return true;
}
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("AddressType");
}
@Override
protected int getConfiguredWidth() {
return 120;
}
}
@Order(20.0f)
public class AdditionalNameColumn extends AbstractStringColumn {
@Override
protected boolean getConfiguredDisplayable() {
return false;
}
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("AdditionalName");
}
}
@Order(30.0f)
public class StreetColumn extends AbstractStringColumn {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Street");
}
@Override
protected int getConfiguredWidth() {
return 150;
}
}
@Order(40.0f)
public class POBoxColumn extends AbstractStringColumn {
@Override
protected boolean getConfiguredDisplayable() {
return false;
}
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("POBox");
}
}
@Order(50.0f)
public class CityColumn extends AbstractSmartColumn<Long> {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("City");
}
@Override
protected int getConfiguredWidth() {
return 165;
}
}
@Order(60.0f)
public class PhoneColumn extends AbstractStringColumn {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Phone");
}
@Override
protected int getConfiguredWidth() {
return 120;
}
}
@Order(70.0f)
public class FaxColumn extends AbstractStringColumn {
@Override
protected boolean getConfiguredDisplayable() {
return false;
}
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Fax");
}
}
@Order(80.0f)
public class EMailColumn extends AbstractStringColumn {
@Override
protected boolean getConfiguredDisplayable() {
return false;
}
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("EMail");
}
}
@Order(90.0f)
public class WwwColumn extends AbstractStringColumn {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Www");
}
@Override
protected int getConfiguredWidth() {
return 140;
}
}
@Order(100.0f)
public class NewMenu extends AbstractMenu {
@Override
protected String getConfiguredText() {
return TEXTS.get("NewMenu");
}
@Override
protected boolean getConfiguredSingleSelectionAction() {
return false;
}
}
@Order(110.0f)
public class EditMenu extends AbstractMenu {
@Override
protected String getConfiguredText() {
return TEXTS.get("Edit");
}
@Override
protected boolean getConfiguredInheritAccessibility() {
return false;
}
@Override
protected boolean getConfiguredSingleSelectionAction() {
return true;
}
@Override
protected boolean getConfiguredMultiSelectionAction() {
return false;
}
}
@Order(120.0f)
public class DeleteMenu extends AbstractMenu {
@Override
protected String getConfiguredText() {
return TEXTS.get("DeleteMenu");
}
@Override
protected boolean getConfiguredSingleSelectionAction() {
return true;
}
@Override
protected boolean getConfiguredMultiSelectionAction() {
return true;
}
@Override
protected void execAction() throws ProcessingException {
}
}
@Order(130.0f)
public class TwixTelMenu extends AbstractMenu {
@Override
protected String getConfiguredText() {
return TEXTS.get("TwixTel");
}
@Override
protected boolean getConfiguredSingleSelectionAction() {
return true;
}
@Override
protected boolean getConfiguredMultiSelectionAction() {
return false;
}
@Override
protected void execInitAction() {
}
}
@Order(140.0f)
public class SeparatorMenu extends AbstractMenu {
@Override
protected boolean getConfiguredSeparator() {
return true;
}
}
@Order(150.0f)
public class CTICallMenu extends AbstractMenu {
@Override
protected String getConfiguredText() {
return TEXTS.get("Call2");
}
@Override
protected boolean getConfiguredSingleSelectionAction() {
return true;
}
@Override
protected boolean getConfiguredMultiSelectionAction() {
return false;
}
@Override
protected boolean getConfiguredInheritAccessibility() {
return false;
}
@Override
protected void execInitAction() {
}
@Override
protected void execAction() throws ProcessingException {
}
}
@Order(160f)
public class ShowInGoogleMapsMenu extends AbstractMenu {
@Override
protected String getConfiguredText() {
return TEXTS.get("ShowInGoogleMapsMenu");
}
@Override
protected boolean getConfiguredSingleSelectionAction() {
return true;
}
@Override
protected boolean getConfiguredMultiSelectionAction() {
return false;
}
@Override
protected boolean getConfiguredInheritAccessibility() {
return false;
}
}
}
}
}
@Order(30.0f)
public class TabBox extends AbstractTabBox {
@Order(10.0f)
public class NoteBox extends AbstractGroupBox {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("Notes");
}
@Order(10.0f)
public class NotesField extends AbstractStringField {
@Override
protected int getConfiguredMaxLength() {
return 2000;
}
@Override
protected boolean getConfiguredLabelVisible() {
return false;
}
@Override
protected boolean getConfiguredMultilineText() {
return true;
}
@Override
protected boolean getConfiguredWrapText() {
return true;
}
@Override
protected int getConfiguredGridW() {
return 2;
}
@Override
protected int getConfiguredGridH() {
return 7;
}
}
}
@Order(20.0f)
public class FinancialFiguresBox extends AbstractGroupBox {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("FinancialFigures");
}
@Order(10.0f)
public class OpenBillsField extends AbstractDoubleField {
@Override
protected Double getConfiguredMinValue() {
return -999999999.0;
}
@Override
protected Double getConfiguredMaxValue() {
return 999999999.0;
}
@Override
protected String getConfiguredLabel() {
return TEXTS.get("OpenBills");
}
@Override
protected boolean getConfiguredEnabled() {
return false;
}
}
@Order(20.0f)
public class FiguresYtDTableField extends AbstractTableField<FiguresYtDTableField.Table> {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("Figures");
}
@Override
protected int getConfiguredGridH() {
return 6;
}
@Override
protected double getConfiguredGridWeightY() {
return 1.0;
}
@Override
protected void execInitField() throws ProcessingException {
setLabel("01.01.-" + DateUtility.format(new Date(), "dd.MM"));
}
@Override
protected boolean execIsEmpty() throws ProcessingException {
return getTable().getPotentialColumn().isEmpty() &&
getTable().getBudgetColumn().isEmpty() &&
getTable().getTurnoverColumn().isEmpty();
}
@Order(10.0f)
public class Table extends AbstractTable {
@Override
protected boolean getConfiguredAutoResizeColumns() {
return true;
}
public YearColumn getYearColumn() {
return getColumnSet().getColumnByClass(YearColumn.class);
}
public PotentialColumn getPotentialColumn() {
return getColumnSet().getColumnByClass(PotentialColumn.class);
}
public BudgetColumn getBudgetColumn() {
return getColumnSet().getColumnByClass(BudgetColumn.class);
}
public TurnoverColumn getTurnoverColumn() {
return getColumnSet().getColumnByClass(TurnoverColumn.class);
}
@Order(10.0f)
public class YearColumn extends AbstractLongColumn {
@Override
protected boolean getConfiguredGroupingUsed() {
return false;
}
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Year");
}
@Override
protected int getConfiguredWidth() {
return 40;
}
}
@Order(20.0f)
public class PotentialColumn extends AbstractLongColumn {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Potential");
}
@Override
protected String getConfiguredHeaderTooltipText() {
return TEXTS.get("ExclVAT");
}
@Override
protected int getConfiguredWidth() {
return 69;
}
}
@Order(30.0f)
public class BudgetColumn extends AbstractLongColumn {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Budget");
}
@Override
protected String getConfiguredHeaderTooltipText() {
return TEXTS.get("ExclVAT");
}
@Override
protected int getConfiguredWidth() {
return 69;
}
}
@Order(40.0f)
public class TurnoverColumn extends AbstractLongColumn {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Turnover");
}
@Override
protected String getConfiguredHeaderTooltipText() {
return TEXTS.get("InvoicesWrittenExclVAT");
}
@Override
protected int getConfiguredWidth() {
return 69;
}
}
}
}
@Order(30.0f)
public class InvoicesDueField extends AbstractDoubleField {
@Override
protected Double getConfiguredMinValue() {
return -999999999.0;
}
@Override
protected Double getConfiguredMaxValue() {
return 999999999.0;
}
@Override
protected String getConfiguredLabel() {
return TEXTS.get("InvoicesDue");
}
@Override
protected boolean getConfiguredEnabled() {
return false;
}
}
@Order(40.0f)
public class FiguresTableField extends AbstractTableField<FiguresTableField.Table> {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("Figures");
}
@Override
protected int getConfiguredGridH() {
return 6;
}
@Override
protected double getConfiguredGridWeightY() {
return 1.0;
}
@Override
protected void execInitField() throws ProcessingException {
setLabel("01.01.-31.12.");
}
@Override
protected boolean execIsEmpty() throws ProcessingException {
return getTable().getPotentialColumn().isEmpty() &&
getTable().getBudgetColumn().isEmpty() &&
getTable().getTurnoverColumn().isEmpty();
}
@Order(10.0f)
public class Table extends AbstractTable {
@Override
protected Class<? extends IMenu> getConfiguredDefaultMenu() {
return EditMenu.class;
}
@Override
protected boolean getConfiguredAutoResizeColumns() {
return true;
}
public YearColumn getYearColumn() {
return getColumnSet().getColumnByClass(YearColumn.class);
}
public PotentialColumn getPotentialColumn() {
return getColumnSet().getColumnByClass(PotentialColumn.class);
}
public BudgetColumn getBudgetColumn() {
return getColumnSet().getColumnByClass(BudgetColumn.class);
}
public TurnoverColumn getTurnoverColumn() {
return getColumnSet().getColumnByClass(TurnoverColumn.class);
}
@Order(10.0f)
public class YearColumn extends AbstractLongColumn {
@Override
protected boolean getConfiguredGroupingUsed() {
return false;
}
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Year");
}
@Override
protected int getConfiguredWidth() {
return 40;
}
}
@Order(20.0f)
public class PotentialColumn extends AbstractLongColumn {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Potential");
}
@Override
protected String getConfiguredHeaderTooltipText() {
return TEXTS.get("ExclVAT");
}
@Override
protected int getConfiguredWidth() {
return 69;
}
}
@Order(30.0f)
public class BudgetColumn extends AbstractLongColumn {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Budget");
}
@Override
protected String getConfiguredHeaderTooltipText() {
return TEXTS.get("ExclVAT");
}
@Override
protected int getConfiguredWidth() {
return 69;
}
}
@Order(40.0f)
public class TurnoverColumn extends AbstractLongColumn {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Turnover");
}
@Override
protected String getConfiguredHeaderTooltipText() {
return TEXTS.get("InvoicesWrittenExclVAT");
}
@Override
protected int getConfiguredWidth() {
return 69;
}
}
@Order(50.0f)
public class EditMenu extends AbstractMenu {
@Override
protected String getConfiguredText() {
return TEXTS.get("Edit");
}
@Override
protected boolean getConfiguredSingleSelectionAction() {
return true;
}
@Override
protected boolean getConfiguredMultiSelectionAction() {
return false;
}
}
}
}
}
@Order(30.0f)
public class AdditionalInformationBox extends AbstractGroupBox {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("AdditionalInformation");
}
@Order(10.0f)
public class AdditionalInformationTableField extends AbstractTableField<AdditionalInformationTableField.Table> {
@Override
protected boolean getConfiguredLabelVisible() {
return false;
}
@Override
protected int getConfiguredGridW() {
return 2;
}
@Override
protected int getConfiguredGridH() {
return 7;
}
@Override
protected boolean execIsEmpty() throws ProcessingException {
return getTable().getDisplayColumn().isEmpty();
}
@Order(10.0f)
public class Table extends AbstractTable {
@Override
protected Class<? extends IMenu> getConfiguredDefaultMenu() {
return EditMenu.class;
}
@Override
protected boolean getConfiguredAutoResizeColumns() {
return true;
}
public AdditionalInformationColumn getAdditionalInformationColumn() {
return getColumnSet().getColumnByClass(AdditionalInformationColumn.class);
}
public DisplayColumn getDisplayColumn() {
return getColumnSet().getColumnByClass(DisplayColumn.class);
}
public TextColumn getTextColumn() {
return getColumnSet().getColumnByClass(TextColumn.class);
}
public NumberColumn getNumberColumn() {
return getColumnSet().getColumnByClass(NumberColumn.class);
}
public DateColumn getDateColumn() {
return getColumnSet().getColumnByClass(DateColumn.class);
}
@Order(20.0f)
public class AdditionalInformationColumn extends AbstractSmartColumn<Long> {
@Override
protected boolean getConfiguredPrimaryKey() {
return true;
}
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("AdditionalInformation");
}
@Override
protected int getConfiguredWidth() {
return 200;
}
}
@Order(40.0f)
public class DisplayColumn extends AbstractStringColumn {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Display");
}
@Override
protected int getConfiguredWidth() {
return 485;
}
}
@Order(50.0f)
public class TextColumn extends AbstractStringColumn {
@Override
protected boolean getConfiguredDisplayable() {
return false;
}
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Text");
}
}
@Order(60.0f)
public class NumberColumn extends AbstractDoubleColumn {
@Override
protected boolean getConfiguredDisplayable() {
return false;
}
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Number");
}
}
@Order(70.0f)
public class DateColumn extends AbstractDateColumn {
@Override
protected boolean getConfiguredDisplayable() {
return false;
}
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Date");
}
}
@Order(100.0f)
public class EditMenu extends AbstractMenu {
@Override
protected String getConfiguredText() {
return TEXTS.get("Edit");
}
@Override
protected boolean getConfiguredSingleSelectionAction() {
return true;
}
@Override
protected boolean getConfiguredMultiSelectionAction() {
return false;
}
@Override
protected boolean getConfiguredInheritAccessibility() {
return false;
}
}
}
}
}
@Order(40.0f)
public class DocumentsBox extends AbstractGroupBox {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("Documents");
}
@Order(10.0f)
public class DocumentTableField extends AbstractDocumentTableField {
}
}
@Order(50.0f)
public class ChangesBox extends AbstractGroupBox {
@Override
protected String getConfiguredLabel() {
return TEXTS.get("Changes");
}
@Order(10.0f)
public class ChangesTableField extends AbstractTableField<ChangesTableField.Table> {
@Override
protected boolean getConfiguredLabelVisible() {
return false;
}
@Override
protected int getConfiguredGridW() {
return 2;
}
@Override
protected int getConfiguredGridH() {
return 7;
}
@Order(10.0f)
public class Table extends AbstractTable {
@Override
protected boolean getConfiguredAutoResizeColumns() {
return true;
}
public TypeColumn getTypeColumn() {
return getColumnSet().getColumnByClass(TypeColumn.class);
}
public PersonColumn getPersonColumn() {
return getColumnSet().getColumnByClass(PersonColumn.class);
}
public DateColumn getDateColumn() {
return getColumnSet().getColumnByClass(DateColumn.class);
}
public MainAccountManagerColumn getMainAccountManagerColumn() {
return getColumnSet().getColumnByClass(MainAccountManagerColumn.class);
}
@Order(10.0f)
public class TypeColumn extends AbstractSmartColumn<Long> {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Type");
}
@Override
protected int getConfiguredWidth() {
return 120;
}
}
@Order(20.0f)
public class PersonColumn extends AbstractStringColumn {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Person");
}
@Override
protected int getConfiguredWidth() {
return 240;
}
}
@Order(30.0f)
public class DateColumn extends AbstractDateColumn {
@Override
protected boolean getConfiguredHasTime() {
return true;
}
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Date");
}
@Override
protected int getConfiguredWidth() {
return 90;
}
}
@Order(40.0f)
public class MainAccountManagerColumn extends AbstractStringColumn {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("MainAccountManager");
}
@Override
protected int getConfiguredWidth() {
return 240;
}
}
}
}
}
}
@Order(40.0f)
public class AlreadyExists_Button extends AbstractButton {
@Override
protected int getConfiguredDisplayStyle() {
return DISPLAY_STYLE_LINK;
}
@Override
protected String getConfiguredLabel() {
return TEXTS.get("AlreadyExists_");
}
}
@Order(50.0f)
public class OkButton extends AbstractOkButton {
}
@Order(60.0f)
public class CancelButton extends AbstractCancelButton {
}
}
@Order(20.0f)
public class ModifyHandler extends AbstractFormHandler {
@Override
protected void execLoad() throws ProcessingException {
}
@Override
protected void execStore() throws ProcessingException {
}
}
@Order(30.0f)
public class NewHandler extends AbstractFormHandler {
@Override
protected void execLoad() throws ProcessingException {
}
@Override
protected void execStore() throws ProcessingException {
}
}
}