Skip to content

Commit

Permalink
Merge Objects: switch direction button
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar authored and semancik committed Oct 21, 2016
1 parent cf21cae commit 587c0b2
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 23 deletions.
Expand Up @@ -247,18 +247,21 @@ protected void initLayoutSummaryPanel() {
FocusSummaryPanel<O> summaryPanel = createSummaryPanel();
summaryPanel.setOutputMarkupId(true);

summaryPanel.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;

@Override
public boolean isVisible() {
return isEditingFocus();
}
});

setSummaryPanelVisibility(summaryPanel);
add(summaryPanel);
}

protected void setSummaryPanelVisibility(FocusSummaryPanel<O> summaryPanel){
summaryPanel.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;

@Override
public boolean isVisible() {
return isEditingFocus();
}
});
}

protected abstract AbstractObjectMainPanel<O> createMainPanel(String id);

protected String getObjectOidParameter() {
Expand Down
Expand Up @@ -99,7 +99,6 @@ public PageMergeObjects(F mergeObject, F mergeWithObject, Class<F> type){

@Override
protected AbstractObjectMainPanel<UserType> createMainPanel(String id){

return new FocusMainPanel<UserType>(id, getObjectModel(), new LoadableModel<List<AssignmentEditorDto>>() {
@Override
protected List<AssignmentEditorDto> load() {
Expand All @@ -122,7 +121,8 @@ protected List<ITab> createTabs(final PageAdminObjectDetails<UserType> parentPag

@Override
public WebMarkupContainer createPanel(String panelId) {
return new MergeObjectsPanel(panelId, mergeObject, mergeWithObject, type, PageMergeObjects.this);
mergeObjectsPanel = new MergeObjectsPanel(panelId, mergeObject, mergeWithObject, type, PageMergeObjects.this);
return mergeObjectsPanel;
}
});
return tabs;
Expand All @@ -132,10 +132,14 @@ public WebMarkupContainer createPanel(String panelId) {
@Override
protected FocusSummaryPanel<UserType> createSummaryPanel(){
UserSummaryPanel summaryPanel = new UserSummaryPanel(ID_SUMMARY_PANEL, getObjectModel());
summaryPanel.setVisible(false);
setSummaryPanelVisibility(summaryPanel);
return summaryPanel;
}

@Override
protected void setSummaryPanelVisibility(FocusSummaryPanel summaryPanel){
summaryPanel.setVisible(false);
}
@Override
protected Class getRestartResponsePage() {
return PageUsers.class;
Expand All @@ -162,8 +166,7 @@ public boolean isEditingFocus() {

@Override
public void saveOrPreviewPerformed(AjaxRequestTarget target, OperationResult result, boolean previewOnly) {
MergeObjectsPanel panel = (MergeObjectsPanel) get("mainPanel").get("mainForm").get("tabPanel").get("panel");
ObjectDelta<F> mergeDelta = panel.getMergeDelta();
ObjectDelta<F> mergeDelta = mergeObjectsPanel.getMergeDelta();

((ObjectWrapper)getObjectModel().getObject()).setOldDelta(mergeDelta);
super.saveOrPreviewPerformed(target, result, previewOnly);
Expand Down
Expand Up @@ -25,7 +25,7 @@
<div wicket:id="mergeType"/>
</div>
</div>
<div class="row">
<div wicket:id="objectsPanel" class="row">
<div wicket:id="mergeObjectDetailsPanel" class="col-xs-3"/>
<div class="icon">
<i class="fa fa-plus col-xs-1" style="font-size: 30px;"></i>
Expand All @@ -35,7 +35,14 @@
<i class="fa fa-arrow-right col-xs-1" style="font-size: 30px;"></i>
</div>
<div wicket:id="mergeResultPanelContainer">
<div wicket:id="mergeResultObjectDetailsPanel" class="col-xs-3"/>
<div wicket:id="mergeResultObjectDetailsPanel" class="col-xs-3"/>
</div>
</div>
<div class="row">
<div class="col-xs-7">
<p align="center">
<a wicket:id="switchDirectionButton" class="btn btn-default btn-sm"/>
</p>
</div>
</div>
<wicket:child/>
Expand Down
Expand Up @@ -58,11 +58,12 @@ public class MergeObjectsPanel<F extends FocusType> extends BasePanel{
private static final String ID_MERGE_RESULT_OBJECT_DETAILS_PANEL = "mergeResultObjectDetailsPanel";
private static final String ID_MERGE_RESULT_PANEL_CONTAINER = "mergeResultPanelContainer";
private static final String ID_BACK_BUTTON = "back";
private static final String ID_SWITCH_DIRECTION_BUTTON = "switchDirection";
private static final String ID_MERGE_DELTA_PREVIEW_BUTTON = "mergeDeltaPreview";
private static final String ID_MERGE_BUTTON = "merge";
private static final String ID_FORM = "mainForm";
private static final String ID_MERGE_TYPE_SELECTOR = "mergeType";
private static final String ID_SWITCH_DIRECTION_BUTTON = "switchDirectionButton";
private static final String ID_OBJECTS_PANEL = "objectsPanel";

private F mergeObject;
private F mergeWithObject;
Expand Down Expand Up @@ -140,31 +141,55 @@ private void initLayout(){
@Override
protected void onUpdate(AjaxRequestTarget target) {
mergeResultObject = getMergeObjectsResult();
WebMarkupContainer resultObjectPanel = (WebMarkupContainer)get(ID_FORM).get(ID_MERGE_RESULT_PANEL_CONTAINER);
WebMarkupContainer resultObjectPanel = (WebMarkupContainer)get(ID_FORM)
.get(ID_OBJECTS_PANEL).get(ID_MERGE_RESULT_PANEL_CONTAINER);
resultObjectPanel.addOrReplace(getMergeResultObjectPanel());
target.add(resultObjectPanel);
}
});
mergeTypeSelect.setOutputMarkupId(true);
mainForm.add(mergeTypeSelect);

final WebMarkupContainer objectsPanel = new WebMarkupContainer(ID_OBJECTS_PANEL);
objectsPanel.setOutputMarkupId(true);
mainForm.addOrReplace(objectsPanel);

initObjectsPanel(objectsPanel);

AjaxButton switchDirectionButton = new AjaxButton(ID_SWITCH_DIRECTION_BUTTON,
pageBase.createStringResource("MergeObjectsPanel.switchDirection")) {
@Override
public void onClick(AjaxRequestTarget ajaxRequestTarget) {
F temp = mergeObject;
mergeObject = mergeWithObject;
mergeWithObject = temp;
initObjectsPanel(objectsPanel);

ajaxRequestTarget.add(objectsPanel);
}
};
switchDirectionButton.setOutputMarkupId(true);
mainForm.add(switchDirectionButton);
}

private void initObjectsPanel(WebMarkupContainer objectsPanel){

MergeObjectDetailsPanel mergeObjectPanel = new MergeObjectDetailsPanel(ID_MERGE_OBJECT_DETAILS_PANEL,
mergeObject, type);
mergeObjectPanel.setOutputMarkupId(true);
mainForm.add(mergeObjectPanel);
objectsPanel.addOrReplace(mergeObjectPanel);

MergeObjectDetailsPanel mergeWithObjectPanel = new MergeObjectDetailsPanel(ID_MERGE_WITH_OBJECT_DETAILS_PANEL,
mergeWithObject, type);
mergeWithObjectPanel.setOutputMarkupId(true);
mainForm.add(mergeWithObjectPanel);
objectsPanel.addOrReplace(mergeWithObjectPanel);

mergeResultObject = getMergeObjectsResult();

WebMarkupContainer mergeResultPanelContainer = new WebMarkupContainer(ID_MERGE_RESULT_PANEL_CONTAINER);
mergeResultPanelContainer.setOutputMarkupId(true);
mainForm.add(mergeResultPanelContainer);
mergeResultPanelContainer.add(getMergeResultObjectPanel());
// initButtonPanel(mainForm);
objectsPanel.addOrReplace(mergeResultPanelContainer);
mergeResultPanelContainer.addOrReplace(getMergeResultObjectPanel());
}

private Component getMergeResultObjectPanel(){
Expand Down
Expand Up @@ -3387,6 +3387,7 @@ PageMergeObjects.mergeButton=Merge
PageMergeObjects.mergeDeltaPreviewButton=Merge delta preview
PageMergeObjects.backButton=Back
PageMergeObjects.mergeType=Merge type
MergeObjectsPanel.switchDirection=Switch direction
MergeType.DEFAULT=default
MergeType.EXPRESSION=expression
MergeType.ALL_RIGHT=allRight
Expand Down

0 comments on commit 587c0b2

Please sign in to comment.