package org.jrebirth.af.component.command.dock; import org.jrebirth.af.api.key.UniqueKey; import org.jrebirth.af.api.ui.Model; import org.jrebirth.af.api.wave.Wave; import org.jrebirth.af.component.ui.beans.TabConfig; import org.jrebirth.af.component.ui.dock.DockModel; import org.jrebirth.af.component.ui.tab.TabModel; import org.jrebirth.af.core.command.single.internal.DefaultBeanCommand; import org.jrebirth.af.core.exception.CommandException; import org.jrebirth.af.core.wave.Builders; public class AddDockCommand extends DefaultBeanCommand<DockWaveBean> { @Override protected void initCommand() { } @Override protected void perform(final Wave wave) throws CommandException { // Perform check // This command is running into JTP // So launch another wave that will processed by Model into JAT if (getWaveBean(wave).model() != null) { for (final Model model : getWaveBean(wave).model()) { sendWaveToTabModel(wave, model); } } if (getWaveBean(wave).modelKey() != null) { for (final UniqueKey<? extends Model> modelKey : getWaveBean(wave).modelKey()) { sendWaveToTabModel(wave, getModel(modelKey)); } } if (getWaveBean(wave).tab() != null) { for (final TabConfig tab : getWaveBean(wave).tab()) { // sendWaveToTabModel(wave, getModel(tab.modelKey())); } } } private void sendWaveToTabModel(final Wave wave, final Model model) { sendWave(Builders.wave() .waveType(TabModel.ADD) .componentClass(TabModel.class) .addDatas(Builders.waveData(DockModel.DOCK_KEY, getWaveBean(wave).dockHolderKey()) // , // Builders.waveData(DockModel.MODEL, model ) )); // getModel(TabModel.class, getWaveBean(wave).dockConfig()).addTab(model, wave); } }