package org.orienteer.core.widget.command;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.ResourceModel;
import org.orienteer.core.component.BootstrapSize;
import org.orienteer.core.component.BootstrapType;
import org.orienteer.core.component.FAIconType;
import org.orienteer.core.component.command.AbstractModalWindowCommand;
import org.orienteer.core.module.OWidgetsModule;
import org.orienteer.core.widget.AbstractWidget;
import org.orienteer.core.widget.DashboardPanel;
import org.orienteer.core.widget.IDashboardManager;
import org.orienteer.core.widget.command.modal.UnhideWidgetDialog;
import com.google.inject.Inject;
import com.orientechnologies.orient.core.record.impl.ODocument;
/**
* Command for {@link DashboardPanel} to unhide a widget
*
* @param <T> the type of main object for a {@link DashboardPanel}
*/
public class UnhideWidgetCommand<T> extends AbstractModalWindowCommand<ODocument> {
@Inject
private IDashboardManager dashboardManager;
public UnhideWidgetCommand(String id, IModel<ODocument> dashboardDocumentModel) {
super(id, "command.unhide", dashboardDocumentModel);
setIcon(FAIconType.plus_circle);
setBootstrapType(BootstrapType.PRIMARY);
setBootstrapSize(BootstrapSize.EXTRA_SMALL);
}
@Override
protected void initializeContent(final ModalWindow modal) {
modal.setTitle(new ResourceModel("command.unhide"));
modal.setContent(new UnhideWidgetDialog<T>(modal.getContentId()) {
@Override
protected void onSelectWidget(AbstractWidget<T> widget,
AjaxRequestTarget target) {
modal.close(target);
widget.setHidden(false);
DashboardPanel<T> dashboard = getDashboardPanel();
dashboard.getDashboardSupport().ajaxAddWidget(widget, target);
}
});
modal.setAutoSize(true);
modal.setMinimalWidth(300);
}
}