Skip to content

Commit

Permalink
Merge branch 'master' of github.com:Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Mar 8, 2017
2 parents f4f4030 + 8c8c0fe commit 8d3a785
Show file tree
Hide file tree
Showing 147 changed files with 1,581 additions and 4,008 deletions.
Expand Up @@ -18,6 +18,7 @@
import java.util.Collection;

import com.evolveum.midpoint.web.component.AjaxIconButton;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
Expand Down Expand Up @@ -58,21 +59,39 @@ protected IColumn<SelectableBean<O>, String> createCheckboxColumn() {
}

@Override
protected IColumn<SelectableBean<O>, String> createNameColumn() {
return new ObjectNameColumn<O>(createStringResource("ObjectType.name")) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel) {
O object = rowModel.getObject().getValue();
MainObjectListPanel.this.objectDetailsPerformed(target, object);
}

@Override
public boolean isClickable(IModel<SelectableBean<O>> rowModel) {
return MainObjectListPanel.this.isClickable(rowModel);
}
};
protected IColumn<SelectableBean<O>, String> createNameColumn(IModel<String> columnNameModel, String itemPath) {
if (StringUtils.isEmpty(itemPath)) {
return new ObjectNameColumn<O>(columnNameModel == null ? createStringResource("ObjectType.name") : columnNameModel) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel) {
O object = rowModel.getObject().getValue();
MainObjectListPanel.this.objectDetailsPerformed(target, object);
}

@Override
public boolean isClickable(IModel<SelectableBean<O>> rowModel) {
return MainObjectListPanel.this.isClickable(rowModel);
}
};
} else {
return new ObjectNameColumn<O>(columnNameModel == null ? createStringResource("ObjectType.name") : columnNameModel,
itemPath) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel) {
O object = rowModel.getObject().getValue();
MainObjectListPanel.this.objectDetailsPerformed(target, object);
}

@Override
public boolean isClickable(IModel<SelectableBean<O>> rowModel) {
return MainObjectListPanel.this.isClickable(rowModel);
}
};
}
}

protected boolean isClickable(IModel<SelectableBean<O>> rowModel) {
Expand Down
Expand Up @@ -27,6 +27,7 @@
import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.StringResourceModel;

Expand Down Expand Up @@ -222,61 +223,74 @@ protected List<IColumn<SelectableBean<O>, String>> initCustomColumns() {
IColumn<SelectableBean<O>, String> iconColumn = ColumnUtils.createIconColumn(type);
columns.add(iconColumn);

columns.addAll(getCustomColumnsTransformed(customColumns));
IColumn<SelectableBean<O>, String> actionsColumn = createActionsColumn();
if (actionsColumn != null){
columns.add(actionsColumn);
}
LOGGER.trace("Finished to init custom columns, created columns {}", columns);
return columns;
}

protected List<IColumn<SelectableBean<O>, String>> getCustomColumnsProcessed(List<GuiObjectColumnType> customColumns){
protected List<IColumn<SelectableBean<O>, String>> getCustomColumnsTransformed(List<GuiObjectColumnType> customColumns){
List<IColumn<SelectableBean<O>, String>> columns = new ArrayList<IColumn<SelectableBean<O>, String>>();
if (customColumns == null || customColumns.size() == 0){
return columns;
}
GuiObjectColumnType firstColumn = null;
List<GuiObjectColumnType> unorderedColumns = new ArrayList<>();
// GuiObjectColumnType firstColumn = null;
// List<GuiObjectColumnType> unorderedColumns = new ArrayList<>();
// while (customColumns.size() > 0){
// GuiObjectColumnType customColumn = customColumns.get(0);
// if (firstColumn == null && StringUtils.isEmpty(customColumn.getPreviousColumn())){
// firstColumn = customColumn;
// customColumns.remove(customColumn);
// } else if (StringUtils.isEmpty(customColumn.getPreviousColumn())){
// unorderedColumns.add(customColumn);
// customColumns.remove(customColumn);
// }
// }
// if (firstColumn == null){
// if (unorderedColumns.size() > 0){
// firstColumn = unorderedColumns.get(0);
// unorderedColumns.remove(0);
// } else {
// firstColumn = customColumns.get(0);
// customColumns.remove(0);
// }
// }
// IColumn<SelectableBean<O>, String> column = new PropertyColumn(Model.of(firstColumn.getDisplay().getLabel()),
// null, SelectableBean.F_VALUE + "." + firstColumn.getPath());
// columns.add(column);
//
// GuiObjectColumnType previousColumn = firstColumn;
// while (customColumns.size() > 0){
// GuiObjectColumnType currentCustomColumn = null;
// for (GuiObjectColumnType customColumn : customColumns){
// if (customColumn.getPreviousColumn() != null &&
// customColumn.getPreviousColumn().equals(previousColumn.getName())){
// currentCustomColumn = customColumn;
// customColumns.remove(customColumn);
// break;
// }
// }
// if (currentCustomColumn != null) {
// column = new PropertyColumn(Model.of(currentCustomColumn.getDisplay().getLabel()), null,
// SelectableBean.F_VALUE + "." + currentCustomColumn.getPath());
// columns.add(column);
// }
// }
IColumn<SelectableBean<O>, String> column;
for (GuiObjectColumnType customColumn : customColumns){
if (firstColumn == null && StringUtils.isEmpty(customColumn.getPreviousColumn())){
firstColumn = customColumn;
customColumns.remove(customColumn);
} else if (StringUtils.isEmpty(customColumn.getPreviousColumn())){
unorderedColumns.add(customColumn);
customColumns.remove(customColumn);
if (customColumns.indexOf(customColumn) == 0){
column = createNameColumn(customColumn.getDisplay() != null && customColumn.getDisplay().getLabel() != null ?
Model.of(customColumn.getDisplay().getLabel()) : createStringResource(getItemDisplayName(customColumn)),
customColumn.getPath().toString());
} else{
column = new PropertyColumn(customColumn.getDisplay() != null && customColumn.getDisplay().getLabel() != null ?
Model.of(customColumn.getDisplay().getLabel()) : createStringResource(getItemDisplayName(customColumn)), null,
SelectableBean.F_VALUE + "." + customColumn.getPath());
}
}
if (firstColumn == null){
if (unorderedColumns.size() > 0){
firstColumn = unorderedColumns.get(0);
unorderedColumns.remove(0);
} else {
firstColumn = customColumns.get(0);
customColumns.remove(0);
}
}
IColumn<SelectableBean<O>, String> column = new PropertyColumn(Model.of(firstColumn.getDisplay().getLabel()),
null, SelectableBean.F_VALUE + "." + firstColumn.getPath());
columns.add(column);

GuiObjectColumnType previousColumn = firstColumn;
while (customColumns.size() > 0){
GuiObjectColumnType currentCustomColumn = null;
for (GuiObjectColumnType customColumn : customColumns){
if (customColumn.getPreviousColumn() != null &&
customColumn.getPreviousColumn().equals(previousColumn.getName())){
currentCustomColumn = customColumn;
customColumns.remove(customColumn);
break;
}
}
if (currentCustomColumn != null) {
column = new PropertyColumn(Model.of(currentCustomColumn.getDisplay().getLabel()), null,
SelectableBean.F_VALUE + "." + currentCustomColumn.getPath());
columns.add(column);
}
}
for (GuiObjectColumnType customColumn : unorderedColumns){
column = new PropertyColumn(Model.of(customColumn.getDisplay().getLabel()), null,
SelectableBean.F_VALUE + "." + customColumn.getPath());
columns.add(column);
unorderedColumns.remove(customColumn);
}
return columns;
}
Expand All @@ -293,11 +307,15 @@ protected List<IColumn<SelectableBean<O>, String>> initColumns() {
IColumn<SelectableBean<O>, String> iconColumn = ColumnUtils.createIconColumn(type);
columns.add(iconColumn);

IColumn<SelectableBean<O>, String> nameColumn = createNameColumn();
IColumn<SelectableBean<O>, String> nameColumn = createNameColumn(null, null);
columns.add(nameColumn);

List<IColumn<SelectableBean<O>, String>> others = createColumns();
columns.addAll(others);
IColumn<SelectableBean<O>, String> actionsColumn = createActionsColumn();
if (actionsColumn != null) {
columns.add(createActionsColumn());
}
LOGGER.trace("Finished to init columns, created columns {}", columns);
return columns;
}
Expand Down Expand Up @@ -510,10 +528,14 @@ public StringResourceModel createStringResource(String resourceKey, Object... ob

protected abstract IColumn<SelectableBean<O>, String> createCheckboxColumn();

protected abstract IColumn<SelectableBean<O>, String> createNameColumn();
protected abstract IColumn<SelectableBean<O>, String> createNameColumn(IModel<String> columnNameModel, String itemPath);

protected abstract List<IColumn<SelectableBean<O>, String>> createColumns();

protected IColumn<SelectableBean<O>, String> createActionsColumn(){
return null;
}

protected abstract List<InlineMenuItem> createInlineMenu();


Expand All @@ -539,4 +561,9 @@ private List<GuiObjectColumnType> getGuiObjectColumnTypeList(){
private boolean isCustomColumnsListConfigured(){
return getGuiObjectColumnTypeList() != null;
}

private String getItemDisplayName(GuiObjectColumnType column){
return parentPage.getPrismContext().getSchemaRegistry()
.findObjectDefinitionByCompileTimeClass(type).findItemDefinition(column.getPath().getItemPath()).getDisplayName();
}
}
Expand Up @@ -17,6 +17,7 @@

import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
Expand Down Expand Up @@ -65,10 +66,13 @@ protected void onUpdateHeader(AjaxRequestTarget target, boolean selected, DataTa
}

@Override
protected IColumn<SelectableBean<O>, String> createNameColumn() {
protected IColumn<SelectableBean<O>, String> createNameColumn(IModel<String> columnNameModel, String itemPath) {
if (!isMultiselect()) {
return new LinkColumn<SelectableBean<O>>(createStringResource("ObjectType.name"),
ObjectType.F_NAME.getLocalPart(), SelectableBean.F_VALUE + ".name") {
return new LinkColumn<SelectableBean<O>>(
columnNameModel == null ? createStringResource("ObjectType.name") : columnNameModel,
StringUtils.isEmpty(itemPath) ? ObjectType.F_NAME.getLocalPart() : itemPath,
SelectableBean.F_VALUE + "." +
(StringUtils.isEmpty(itemPath) ? "name" : itemPath)) {
private static final long serialVersionUID = 1L;

@Override
Expand All @@ -81,8 +85,11 @@ public void onClick(AjaxRequestTarget target, IModel<SelectableBean<O>> rowModel
}

else {
return new PropertyColumn(createStringResource("userBrowserDialog.name"),
ObjectType.F_NAME.getLocalPart(), SelectableBean.F_VALUE + ".name");
return new PropertyColumn(
columnNameModel == null ? createStringResource("userBrowserDialog.name") : columnNameModel,
StringUtils.isEmpty(itemPath) ? ObjectType.F_NAME.getLocalPart() : itemPath,
SelectableBean.F_VALUE + "." +
(StringUtils.isEmpty(itemPath) ? "name" : itemPath));
}
}

Expand Down
Expand Up @@ -46,6 +46,10 @@ public ObjectNameColumn(IModel<String> displayModel) {
super(displayModel, ObjectType.F_NAME.getLocalPart());
}

public ObjectNameColumn(IModel<String> displayModel, String itemPath) {
super(displayModel, itemPath);
}

@Override
public void populateItem(final Item<ICellPopulator<SelectableBean<O>>> cellItem, String componentId,
final IModel<SelectableBean<O>> rowModel) {
Expand Down
Expand Up @@ -64,7 +64,7 @@ public class DynamicFormPanel<O extends ObjectType> extends BasePanel<ObjectWrap

public DynamicFormPanel(String id, final IModel<O> model, String formOid, Form<?> mainForm,
boolean runPrivileged, final PageBase parentPage) {
this(id, model.getObject().asPrismObject(), formOid, mainForm, runPrivileged, parentPage);
this(id, (PrismObject<O>) model.getObject().asPrismObject(), formOid, mainForm, runPrivileged, parentPage);

}

Expand Down
Expand Up @@ -1008,7 +1008,7 @@ private String nameFromReference(ObjectReferenceType reference, Task task, Opera
}
ObjectType object = prismObject.asObjectable();
if (object instanceof AbstractRoleType) {
return getNameToDisplay(object.asPrismObject());
return getNameToDisplay((PrismObject<? extends FocusType>) object.asPrismObject());
} else {
return PolyString.getOrig(object.getName());
}
Expand Down
Expand Up @@ -291,7 +291,7 @@ protected ObjectWrapper<O> loadObjectWrapper(PrismObject<O> objectToEdit) {
LOGGER.trace("Loading object: New object (creating)");
O focusType = createNewObject();
getMidpointApplication().getPrismContext().adopt(focusType);
object = focusType.asPrismObject();
object = (PrismObject<O>) focusType.asPrismObject();
} else {
LOGGER.trace("Loading object: New object (supplied): {}", objectToEdit);
object = objectToEdit;
Expand Down
Expand Up @@ -163,6 +163,11 @@ protected List<IColumn<SelectableBean<ResourceType>, String>> createColumns() {
return PageResources.this.initResourceColumns();
}

@Override
protected IColumn<SelectableBean<ResourceType>, String> createActionsColumn() {
return PageResources.this.createResourceActionsColumn();
}

@Override
protected void objectDetailsPerformed(AjaxRequestTarget target, ResourceType object) {
PageResources.this.resourceDetailsPerformed(target, object.getOid());
Expand Down Expand Up @@ -267,7 +272,11 @@ private List<IColumn<SelectableBean<ResourceType>, String>> initResourceColumns(
columns.add(new PropertyColumn(createStringResource("pageResources.version"),
SelectableBean.F_VALUE + ".connector.connectorVersion"));

columns.add(new InlineMenuButtonColumn<SelectableBean<ResourceType>>(createRowMenuItems(false), 2){
return columns;
}

private IColumn<SelectableBean<ResourceType>, String> createResourceActionsColumn() {
return new InlineMenuButtonColumn<SelectableBean<ResourceType>>(createRowMenuItems(false), 2){
@Override
protected int getHeaderNumberOfButtons() {
return 1;
Expand All @@ -277,12 +286,10 @@ protected int getHeaderNumberOfButtons() {
protected List<InlineMenuItem> getHeaderMenuItems() {
return createRowMenuItems(true);
}
});

return columns;
};
}

private void resourceDetailsPerformed(AjaxRequestTarget target, String oid) {
private void resourceDetailsPerformed(AjaxRequestTarget target, String oid) {
clearSessionStorageForResourcePage();

PageParameters parameters = new PageParameters();
Expand Down
Expand Up @@ -268,6 +268,11 @@ protected List<IColumn<SelectableBean<ShadowType>, String>> createColumns() {
return ResourceContentPanel.this.initColumns();
}

@Override
protected IColumn<SelectableBean<ShadowType>, String> createActionsColumn(){
return new InlineMenuHeaderColumn(createHeaderMenuItems());
}

@Override
protected void objectDetailsPerformed(AjaxRequestTarget target, ShadowType object) {
shadowDetailsPerformed(target, WebComponentUtil.getName(object), object.getOid());
Expand Down Expand Up @@ -632,9 +637,6 @@ public void onClick(AjaxRequestTarget target, IModel<SelectableBean<ShadowType>>
}
});

InlineMenuHeaderColumn menuColumn = new InlineMenuHeaderColumn(createHeaderMenuItems());
columns.add(menuColumn);

return columns;
}

Expand Down

0 comments on commit 8d3a785

Please sign in to comment.