Skip to content

Commit

Permalink
T517 WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
OndraZizka committed Feb 23, 2017
1 parent d96b14f commit 4a0b3b5
Show file tree
Hide file tree
Showing 9 changed files with 375 additions and 86 deletions.
Expand Up @@ -55,7 +55,7 @@ public class AnalysisContext implements Serializable
@Fetch(FetchMode.SELECT)
private Collection<AdvancedOption> advancedOptions;

// @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
//@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@OneToOne(optional = false)
private ApplicationGroup applicationGroup;

Expand Down
Expand Up @@ -23,14 +23,18 @@
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.jboss.windup.util.exception.WindupException;

/**
* @author <a href="mailto:dklingenberg@gmail.com">David Klingenberg</a>
*/
public class ApplicationGroupService
{
private static final Logger LOG = Logger.getLogger(ApplicationGroupService.class.getName());

@PersistenceContext
private EntityManager entityManager;

Expand Down Expand Up @@ -83,24 +87,27 @@ public ApplicationGroup createDefaultApplicationGroup(MigrationProject project)
return this.createApplicationGroup(ApplicationGroup.DEFAULT_NAME, project);
}

public ApplicationGroup update(ApplicationGroup updatedGroup)
public ApplicationGroup update(ApplicationGroup updatedGroupDTO)
{
ApplicationGroup original = this.entityManager.find(ApplicationGroup.class, updatedGroup.getId());
original.setTitle(updatedGroup.getTitle());
this.updateApplications(original, updatedGroup.getApplications());
if (updatedGroupDTO.getId() == null)
throw new WindupException("Group ID is null.");

this.entityManager.merge(original);
ApplicationGroup original = this.entityManager.find(ApplicationGroup.class, updatedGroupDTO.getId());
original.setTitle(updatedGroupDTO.getTitle());
this.setIncludedApplications(original, updatedGroupDTO.getApplications());

this.entityManager.merge(original);
return original;
}

public ApplicationGroup updateApplications(ApplicationGroup group, Collection<RegisteredApplication> newApplications)
private ApplicationGroup setIncludedApplications(ApplicationGroup group, Collection<RegisteredApplication> newApplicationSet)
{
Set<Long> selectedApplicationIds = newApplications.stream()
Set<Long> includedApplicationIds = newApplicationSet.stream()
.map(RegisteredApplication::getId)
.collect(Collectors.toSet());
LOG.fine("Updating App Group #" + group.getId() + ", includedApplicationIds: " + String.join(", ", includedApplicationIds.stream().map((id) -> "" + id).collect(Collectors.toList())));

Collection<RegisteredApplication> applications = this.getAllApplicationsByIds(selectedApplicationIds);
Collection<RegisteredApplication> applications = this.getAllApplicationsByIds(includedApplicationIds);
group.setApplications(new HashSet<>(applications));
applications.forEach(application -> {
application.addApplicationGroup(group);
Expand Down
2 changes: 2 additions & 0 deletions ui/src/main/webapp/src/app/app.module.ts
Expand Up @@ -105,6 +105,7 @@ import {MomentModule} from "angular2-moment";
import {FileUploadModule, FileUploader} from "ng2-file-upload";
import {WizardComponent} from "./components/wizard.component";
import {DurationPipe} from "./components/duration.pipe";
import {CheckboxesComponent} from "./components/reusable/checkboxes.component";

/**
* Load all mapping data from the generated files.
Expand Down Expand Up @@ -163,6 +164,7 @@ initializeModelMappingData();
RulesModalComponent,
TechnologyComponent,

CheckboxesComponent,
UploadQueueComponent,
UploadProgressbarComponent,
CustomRuleSelectionComponent,
Expand Down
Expand Up @@ -5,6 +5,7 @@ <h1 i18n>
</h1>

<h2 *ngIf="!applicationGroup" i18n>Loading...</h2>

<form *ngIf="applicationGroup" #analysisContextForm="ngForm" (ngSubmit)="onSubmit()" class="form-horizontal">

<div *ngFor="let errorMessage of errorMessages" class="row form-errors alert alert-danger">
Expand All @@ -16,8 +17,8 @@ <h2 *ngIf="!applicationGroup" i18n>Loading...</h2>
</div>
<div class="row">
<div class="form-group">
<label class="col-md-2 control-label" for="migrationPath" i18n>Migration Path</label>
<div class="col-md-6">
<label class="col-md-2 control-label" for="migrationPath" i18n>Migration Scenario</label>
<div class="col-md-10 col-lg-8">
<select #migrationPath="ngModel" id="migrationPath" name="migrationPath" ngControl="migrationPath"
class="form-control" required
[(ngModel)]="analysisContext.migrationPath.id"
Expand All @@ -30,29 +31,70 @@ <h2 *ngIf="!applicationGroup" i18n>Loading...</h2>
</span>
</div>
</div>

<!-- Apps -->
<div class="form-group">
<label class="col-md-2 control-label" i18n>Applications included</label>
<div class="col-md-10 col-lg-8">
<!--
<wu-applications
[availableApplications]=""
[(selectedApplications)]="applicationGroup.applications"
>
</wu-applications>
[checkedOptions]="getIncludedAppIds()"
[(checkedOptions)]="includedAppIds"
(onCheckedChange)="foo($event)"
-->
<wu-checkboxes [groupName]="'includedApps'"
[options]="availableApps"
[valueCallback]="appsValueCallback"
[labelCallback]="appsLabelCallback"
[(checkedOptions)]="applicationGroup.applications"
(checkedOptionsChange)="onCheckedOptionsChange()"
>
</wu-checkboxes>
</div>
</div>

<!-- Packages -->
<div class="form-group">
<label class="col-md-2 control-label" i18n>Include Packages</label>
<div class="col-md-4">
<div class="col-md-10 col-lg-8">
<wu-js-tree-wrapper
[treeNodes]="packageTree"
[(selectedNodes)]="analysisContext.includePackages"
>
<!-- selectedNodesChange seems to have no role.
(selectedNodesChange)="bar()"
-->
</wu-js-tree-wrapper>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label" i18n>Exclude Package</label>
<div class="col-md-3">
<div class="col-md-10 col-lg-8">
<wu-js-tree-wrapper
[treeNodes]="packageTree"
[(selectedNodes)]="analysisContext.excludePackages">
</wu-js-tree-wrapper>
</div>
</div>
<wu-custom-rule-selection [selectedRulePaths]="analysisContext.rulesPaths" (selectedRulePathsChanged)="rulesPathsChanged($event)"></wu-custom-rule-selection>


<div class="form-group">
<label class="col-md-2 control-label" i18n>Advanced Options</label>
<label class="col-md-2 control-label">Custom Ruleset selection</label>
<div class="col-md-6">
<wu-custom-rule-selection
[selectedRulePaths]="analysisContext.rulesPaths"
(selectedRulePathsChanged)="rulesPathsChanged($event)">
</wu-custom-rule-selection>
</div>
</div>

<div class="form-group">
<label class="col-md-2 control-label" i18n>Advanced Options</label>
<div class="col-md-10 col-lg-8">
<wu-analysis-context-advanced-options
[(selectedOptions)]="analysisContext.advancedOptions"
(advancedOptionsChanged)="advancedOptionsChanged($event)"
Expand All @@ -62,7 +104,7 @@ <h2 *ngIf="!applicationGroup" i18n>Loading...</h2>
</div>
</div>
<div class="form-group">
<div class="col-md-10 col-md-offset-2">
<div class="col-lg-10 col-lg-offset-2">
<button *ngIf="isInWizard" [disabled]="!analysisContextForm.form.valid" class="btn btn-primary" (click)="saveAndRun()" i18n>Save &amp; Run</button>
<button [disabled]="!analysisContextForm.form.valid" class="btn btn-primary" (click)="save()" i18n>Save Configuration</button>
<button (click)="cancel()" type="button" class="btn btn-default" i18n>Cancel</button>
Expand Down

0 comments on commit 4a0b3b5

Please sign in to comment.