![JAR search and dependency download from the Maven repository](/logo.png)
com.talk2object.plum.lib.viewbuilder.GenericSingleMethodInteractionViewBuilder Maven / Gradle / Ivy
package com.talk2object.plum.lib.viewbuilder;
import com.talk2object.plum.interaction.AbstractSingleMethodInteraction;
import com.talk2object.plum.interaction.annotation.View;
import com.talk2object.plum.interaction.application.PlumApplicationContextUtils;
import com.talk2object.plum.interaction.generic.DialogInteraction;
import com.talk2object.plum.interaction.interaction.ActionBuilder;
import com.talk2object.plum.interaction.interaction.SortedActions;
import com.talk2object.plum.interaction.model.Application;
import com.talk2object.plum.interaction.rich.field.ViewMode;
import com.talk2object.plum.view._abstract.components.AppView;
import com.talk2object.plum.view.component.Button;
import com.talk2object.plum.view.component.ClickEventListener;
import com.talk2object.plum.view.component.Component;
import com.talk2object.plum.view.component.containers.window.MainWindow;
import com.talk2object.plum.view.component.menu.MenuBar;
import com.talk2object.plum.viewgeneration.AbstractSimpleViewBuilder;
import com.talk2object.plum.viewgeneration.BuilderMatchPolicy;
import com.talk2object.plum.viewgeneration.ViewBuildContext;
import com.talk2object.plum.viewgeneration.ViewClass;
import com.talk2object.plum.viewgeneration.ViewDetail;
import com.talk2object.plum.viewgeneration.ViewFactory;
/**
* This is a view builder for any model which has {@link View} annotation.
*
* @author jack
*
*/
public class GenericSingleMethodInteractionViewBuilder extends
AbstractSimpleViewBuilder {
@Override
public Component build(Object model, ViewBuildContext context) {
MainWindow view = null;
final AbstractSingleMethodInteraction interaction = (AbstractSingleMethodInteraction) model;
try {
view = new AppView();
view.setModel(model);
String name = interaction.getMethod().getName();
view.setTitle(name);
Button btn = new Button();
btn.setCaption(name);
btn.addClickListener(new ClickEventListener() {
@Override
public void onClick(Component source) {
interaction.start();
}
});
view.getBodyPanel().addChild(btn);
view.getFootPanel().hide();
} catch (Exception e) {
throw new RuntimeException(e);
}
// req.getSession().setAttribute(SESSION_KEY_VIEW, view);
return view;
}
@Override
public Class getModelClass() {
return DialogInteraction.class;
}
@Override
public Class getViewClass() {
return AppView.class;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy