package org.orienteer.core.component.widget.property; import org.apache.wicket.Component; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.model.IModel; import org.apache.wicket.model.ResourceModel; import org.orienteer.core.component.FAIcon; import org.orienteer.core.component.FAIconType; import org.orienteer.core.component.command.EditSchemaCommand; import org.orienteer.core.component.command.SaveSchemaCommand; import org.orienteer.core.component.meta.OPropertyMetaPanel; import org.orienteer.core.component.structuretable.OrienteerStructureTable; import org.orienteer.core.web.schema.OPropertyPage; import org.orienteer.core.widget.AbstractModeAwareWidget; import org.orienteer.core.widget.AbstractWidget; import org.orienteer.core.widget.Widget; import com.orientechnologies.orient.core.metadata.schema.OProperty; import com.orientechnologies.orient.core.record.impl.ODocument; /** * Widget to show and modify {@link OProperty} configuration */ @Widget(id="property-configuration", domain="property", tab="configuration", autoEnable=true) public class OPropertyConfigurationWidget extends AbstractModeAwareWidget<OProperty> { private OrienteerStructureTable<OProperty, String> structureTable; public OPropertyConfigurationWidget(String id, IModel<OProperty> model, IModel<ODocument> widgetDocumentModel) { super(id, model, widgetDocumentModel); Form<OProperty> form = new Form<OProperty>("form"); structureTable = new OrienteerStructureTable<OProperty, String>("attributes", getModel(), OPropertyMetaPanel.OPROPERTY_ATTRS) { @Override protected Component getValueComponent(String id, final IModel<String> rowModel) { return new OPropertyMetaPanel<Object>(id, getModeModel(), OPropertyConfigurationWidget.this.getModel(), rowModel); } }; form.add(structureTable); add(form); } @Override protected FAIcon newIcon(String id) { return new FAIcon(id, FAIconType.bars); } @Override protected IModel<String> getDefaultTitleModel() { return new ResourceModel("property.configuration"); } @Override protected void onInitialize() { super.onInitialize(); structureTable.addCommand(new EditSchemaCommand<OProperty>(structureTable, getModeModel())); structureTable.addCommand(new SaveSchemaCommand<OProperty>(structureTable, getModeModel(), getModel())); } @Override protected String getWidgetStyleClass() { return "strict"; } }