fr.ird.observe.client.form.spi.FormUIInitializer Maven / Gradle / Ivy
package fr.ird.observe.client.form.spi;
/*
* #%L
* ObServe Toolkit :: Common Client
* %%
* Copyright (C) 2008 - 2017 IRD, Ultreia.io
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program. If not, see
* .
* #L%
*/
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import fr.ird.observe.client.form.FormUI;
import fr.ird.observe.client.form.FormUIBlockingLayerUI;
import fr.ird.observe.client.form.FormUIModel;
import fr.ird.observe.client.form.spi.init.CoordinatesEditorInitializer;
import fr.ird.observe.client.form.spi.init.DateTimeEditorInitializer;
import fr.ird.observe.client.form.spi.init.TabInfoInitializer;
import fr.ird.observe.client.util.ObserveValidatorMessageTableRenderer;
import java.util.Optional;
import org.nuiton.jaxx.runtime.spi.init.UIInitializerSupport;
import org.nuiton.jaxx.runtime.swing.TabInfo;
import org.nuiton.jaxx.validator.swing.SwingValidatorUtil;
import org.nuiton.jaxx.widgets.datetime.DateTimeEditor;
import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditor;
/**
* To initialize ui.
*
* Created on 9/26/14.
*
* @author Tony Chemit - [email protected]
* @since 3.7
*/
public abstract class FormUIInitializer> extends UIInitializerSupport {
public FormUIInitializer(V context) {
super(context);
}
protected abstract void initHandler(V context);
protected abstract void initFormUIContext(V context, FormUIContext.Builder formUIContextBuilder);
@Override
public void init(U ui) {
super.init(ui);
}
@Override
protected void initBlockLayerUI(V context, String... doNotBlockComponentIds) {
FormUIBlockingLayerUI blockLayerUI = context.getUi().getBlockLayerUI();
blockLayerUI.setAcceptedComponentTypes(context.getAcceptedComponentTypes());
blockLayerUI.setAcceptedComponentNames(doNotBlockComponentIds);
}
@Override
protected void initEnd(V context) {
initHandler(context);
FormUIContext.Builder formUIContextBuilder = context.getFormUIContext();
initFormUIContext(context, formUIContextBuilder);
FormUIContext formUIContext = formUIContextBuilder.build();
init(context, formUIContext);
SwingValidatorUtil.installUI(context.getUi().getErrorTable(), new ObserveValidatorMessageTableRenderer());
}
protected void init(V context, FormUIContext formUIContext) {
FormUIModel model = context.getUi().getModel();
model.setFormUIContext(formUIContext);
Optional> dateTimeEditors = formUIContext.getDateTimeEditorMap();
dateTimeEditors.ifPresent(map -> DateTimeEditorInitializer.install(map.values()));
Optional> coordinatesEditors = formUIContext.getCoordinatesEditorMap();
coordinatesEditors.ifPresent(map -> CoordinatesEditorInitializer.install(map.values()));
Optional> tabModels = formUIContext.getTabModelSet();
tabModels.ifPresent(set -> TabInfoInitializer.install(context.getUi(), set));
}
}