/**
*
*/
package org.orienteer.core.component.property;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.markup.IMarkupFragment;
import org.apache.wicket.markup.html.panel.GenericPanel;
import org.apache.wicket.model.IModel;
import org.orienteer.core.service.IMarkupProvider;
import org.orienteer.core.web.schema.OPropertyPage;
import com.google.inject.Inject;
import com.orientechnologies.orient.core.metadata.schema.OProperty;
/**
* To making fields in classes by fields in documents
*/
public class UnregistredPropertyEditPanel extends GenericPanel<OProperty> {
@Inject
private IMarkupProvider markupProvider;
public UnregistredPropertyEditPanel(String id, IModel<OProperty> model) {
super(id, model);
add(makeRealizeButton());
}
protected Component makeRealizeButton() {
return new AjaxLink("realize") {
@Override
public void onClick(AjaxRequestTarget target) {
setResponsePage(new OPropertyPage(UnregistredPropertyEditPanel.this.getModel()).setModeObject(DisplayMode.EDIT));
}
};
}
@Override
public IMarkupFragment getMarkup(Component child) {
if(child!=null && child.getId().equals(getPropertyComponentId())) {
return markupProvider.provideMarkup(child);
} else {
return super.getMarkup(child);
}
}
public void setPropertyComponent(Component propertyComponent){
addOrReplace(propertyComponent);
}
public String getPropertyComponentId() {
return "propertyComponent";
}
}