Skip to content

Commit 865fa87

Browse files
committed
Merge pull request #1 from payammeyer/BigWorkflowRefactor
Merging into my master
2 parents 11956fe + 1caa11c commit 865fa87

File tree

47 files changed

+1468
-738
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+1468
-738
lines changed

dcs-packaging-tool/dcs-packaging-tool-gui/src/main/java/org/dataconservancy/packaging/gui/Controller.java

Lines changed: 80 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -66,33 +66,39 @@ public class Controller {
6666
private PackageToolPopup crossPageProgressIndicatorPopUp;
6767
private Page currentPage;
6868
private Stack<Page> previousPages;
69-
69+
7070
/* For handling file dialog mutex locks as a MacOS bug workaround DC-1624 */
7171
private final ConcurrentHashMap<Object, Semaphore> locks = new ConcurrentHashMap<>();
72-
72+
7373
public Controller() {
7474
this.container = new BorderPane();
7575
container.getStyleClass().add(CssConstants.ROOT_CLASS);
7676
previousPages = new Stack<>();
7777
toolVersion = new ApplicationVersion();
7878
}
7979

80-
public Factory getFactory() { return factory; }
81-
public void setFactory(Factory factory) { this.factory = factory; }
80+
public Factory getFactory() {
81+
return factory;
82+
}
83+
84+
public void setFactory(Factory factory) {
85+
this.factory = factory;
86+
}
8287

8388
public void startApp() {
8489
defaultPackageGenerationParametersFilePath = factory.getConfiguration().getPackageGenerationParameters();
8590
packageFilenameIllegalCharacters = factory.getConfiguration().getPackageFilenameIllegalCharacters();
8691
availableProjects = factory.getConfiguration().getAvailableProjects();
8792
showHome(true);
8893
}
89-
94+
9095
/**
9196
* Switch to home.
97+
*
9298
* @param clear Set to true if the fields on the home page should be cleared, false if not.
9399
*/
94100
public void showHome(boolean clear) {
95-
container.setTop((VBox)factory.getHeaderView());
101+
container.setTop((VBox) factory.getHeaderView());
96102
currentPage = Page.HOMEPAGE;
97103
packageDescription = null;
98104
packageDescriptionFile = null;
@@ -112,8 +118,9 @@ public void showHome(boolean clear) {
112118
*/
113119
private void clearPresenters() {
114120
factory.getHomepagePresenter().clear();
121+
factory.getPackageMetadataPresenter().clear();
115122
factory.getCreateNewPackagePresenter().clear();
116-
factory.getContentDirectoryPresenter().clear();
123+
factory.getOpenExistingPackagePresenter().clear();
117124
factory.getPackageDescriptionPresenter().clear();
118125
factory.getPackageGenerationPresenter().clear();
119126
}
@@ -122,9 +129,19 @@ private void clearPresenters() {
122129
* Switch to homepage
123130
*/
124131
private void showHomepage() {
132+
previousPages.clear();
133+
clearPresenters();
125134
show(factory.getHomepagePresenter());
126135
}
127136

137+
/**
138+
* Switch to package metadata
139+
*/
140+
private void showPackageMetadata() {
141+
show(factory.getPackageMetadataPresenter());
142+
factory.getPackageMetadataPresenter().setExistingValues();
143+
}
144+
128145
/**
129146
* Switch to creating package description.
130147
*/
@@ -136,7 +153,14 @@ public void showCreatePackageDescription() {
136153
* Switch to the screen for selecting a content directory.
137154
*/
138155
public void showSelectContentDirectory() {
139-
show(factory.getContentDirectoryPresenter());
156+
show(factory.getOpenExistingPackagePresenter());
157+
}
158+
159+
/**
160+
* Switch to the screen for selecting a package directory.
161+
*/
162+
public void showSelectPackageDirectory() {
163+
show(factory.getOpenExistingPackagePresenter());
140164
}
141165

142166
/**
@@ -148,12 +172,13 @@ public Parent asParent() {
148172

149173
/**
150174
* Shows the presenter and optionally clears the information
175+
*
151176
* @param presenter The presenter to show
152177
*/
153178
private void show(Presenter presenter) {
154179
container.setCenter(presenter.display());
155180
}
156-
181+
157182
public void showGeneratePackage() {
158183
show(factory.getPackageGenerationPresenter());
159184
}
@@ -163,9 +188,10 @@ public PackageDescriptionPresenter showPackageDescriptionViewer() {
163188
show(presenter);
164189
return presenter;
165190
}
191+
166192
/**
167193
* Pops up a dialog that waits for the user to choose a file.
168-
*
194+
*
169195
* @param chooser the FileChooser
170196
* @return file chosen or null on cancel
171197
*/
@@ -185,10 +211,11 @@ public File showOpenFileDialog(FileChooser chooser) {
185211
return null;
186212
}
187213
}
188-
189-
/** Pops up a save file dialog.
190-
*
191-
* @param chooser the FileChooser
214+
215+
/**
216+
* Pops up a save file dialog.
217+
*
218+
* @param chooser the FileChooser
192219
* @return File to save or null on cancel.
193220
*/
194221
public File showSaveFileDialog(FileChooser chooser) {
@@ -209,6 +236,7 @@ public File showSaveFileDialog(FileChooser chooser) {
209236

210237
/**
211238
* Pops up a dialog that waits for the user to choose a directory
239+
*
212240
* @param chooser the DirectoryChooser
213241
* @return directory chosen or null on cancel
214242
*/
@@ -227,35 +255,19 @@ public File showOpenDirectoryDialog(DirectoryChooser chooser) {
227255
return null;
228256
}
229257
}
230-
258+
231259
private Semaphore getLock(Object exclusive) {
232260
locks.putIfAbsent(exclusive, new Semaphore(1));
233261
return locks.get(exclusive);
234262
}
235-
236-
//Advances the application to the next page. Or redisplays the current page if it's the last page.
237-
public void goToNextPage() {
238-
Page nextPage = currentPage;
239-
int currentPosition = currentPage.getPosition();
240-
int nextPosition = Integer.MAX_VALUE;
241-
for (Page pages : Page.values()) {
242-
if (pages.getPosition() > currentPosition && pages.getPosition() < nextPosition && pages.isValidPage(this)) {
243-
nextPosition = pages.getPosition();
244-
}
245-
}
246-
247-
if (nextPosition < Integer.MAX_VALUE) {
248-
Page pageForPosition = Page.getPageByPosition(nextPosition);
249-
if (pageForPosition != null) {
250-
nextPage = pageForPosition;
251-
}
252-
}
253263

264+
//Advances the application to the next page. Or redisplays the current page if it's the last page.
265+
public void goToNextPage(Page nextPage) {
254266
previousPages.push(currentPage);
255267
currentPage = nextPage;
256268
showPage();
257269
}
258-
270+
259271
//Returns the application to the previous page, or redisplays the current page if it's the first page.
260272
public void goToPreviousPage() {
261273
if (previousPages != null && !previousPages.isEmpty()) {
@@ -264,20 +276,18 @@ public void goToPreviousPage() {
264276
}
265277
}
266278

267-
public void goToPage(Page page) {
268-
currentPage = page;
269-
showPage();
270-
}
271-
272279
/**
273-
* Shows the current page, a tells the presenter if it should clear it's information.
280+
* Shows the current page, a tells the presenter if it should clear it's information.
274281
*/
275282
private void showPage() {
276-
factory.getHeaderView().highlightNextPage(currentPage.getPosition());
283+
factory.getHeaderView().highlightNextPage(currentPage);
277284
switch (currentPage) {
278285
case HOMEPAGE:
279286
showHomepage();
280287
break;
288+
case PACKAGE_METADATA:
289+
showPackageMetadata();
290+
break;
281291
case CREATE_NEW_PACKAGE:
282292
showCreatePackageDescription();
283293
break;
@@ -290,25 +300,28 @@ private void showPage() {
290300
case SELECT_CONTENT_DIRECTORY:
291301
showSelectContentDirectory();
292302
break;
303+
case SELECT_PACKAGE_DIRECTORY:
304+
showSelectPackageDirectory();
305+
break;
293306
default:
294307
//There is no next page do nothing
295308
break;
296309
}
297310
}
298-
311+
299312
public void setPackageDescription(PackageDescription description) {
300313
this.packageDescription = description;
301314
}
302-
315+
303316
public PackageDescription getPackageDescription() {
304317
return packageDescription;
305318
}
306-
307-
public void setPackageDescriptionFile(File packageDescriptionFile){
319+
320+
public void setPackageDescriptionFile(File packageDescriptionFile) {
308321
this.packageDescriptionFile = packageDescriptionFile;
309322
}
310323

311-
public File getPackageDescriptionFile(){
324+
public File getPackageDescriptionFile() {
312325
return packageDescriptionFile;
313326
}
314327

@@ -320,17 +333,29 @@ public void setContentRoot(File contentRoot) {
320333
this.contentRoot = contentRoot;
321334
}
322335

323-
public File getRootArtifactDir() { return rootArtifactDir; }
336+
public File getRootArtifactDir() {
337+
return rootArtifactDir;
338+
}
324339

325-
public void setRootArtifactDir(File rootArtifactDir) { this.rootArtifactDir = rootArtifactDir; }
340+
public void setRootArtifactDir(File rootArtifactDir) {
341+
this.rootArtifactDir = rootArtifactDir;
342+
}
326343

327-
public String getPackageFilenameIllegalCharacters() { return packageFilenameIllegalCharacters; }
344+
public String getPackageFilenameIllegalCharacters() {
345+
return packageFilenameIllegalCharacters;
346+
}
328347

329-
public void setPackageFilenameIllegalCharacters(String illegalCharacters) { this.packageFilenameIllegalCharacters = illegalCharacters;}
348+
public void setPackageFilenameIllegalCharacters(String illegalCharacters) {
349+
this.packageFilenameIllegalCharacters = illegalCharacters;
350+
}
330351

331-
public String getAvailableProjects() { return availableProjects; }
352+
public String getAvailableProjects() {
353+
return availableProjects;
354+
}
332355

333-
public void setAvailableProjects(String availableProjects) { this.availableProjects = availableProjects; }
356+
public void setAvailableProjects(String availableProjects) {
357+
this.availableProjects = availableProjects;
358+
}
334359

335360
public PackageState getPackageState() {
336361
return packageState;
@@ -351,14 +376,16 @@ public void setCrossPageProgressIndicatorPopUp(PackageToolPopup crossPageProgres
351376
public void setToolBuildNumber(String buildNumber) {
352377
toolVersion.setBuildNumber(buildNumber);
353378
}
379+
354380
public void setToolBuildRevision(String buildRevision) {
355381
toolVersion.setBuildRevision(buildRevision);
356382
}
383+
357384
public void setToolBuildTimestamp(String buildTimestamp) {
358385
toolVersion.setBuildTimeStamp(buildTimestamp);
359386
}
360387

361-
public String getDefaultPackageGenerationParametersFilePath () {
388+
public String getDefaultPackageGenerationParametersFilePath() {
362389
return defaultPackageGenerationParametersFilePath;
363390
}
364391
}

dcs-packaging-tool/dcs-packaging-tool-gui/src/main/java/org/dataconservancy/packaging/gui/CssConstants.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,8 @@ public interface CssConstants {
5353
public static final String UNEDITABLE_PROPERTY_VALUE = "UneditablePropertyValue";
5454
public static final String PROPERTY_TEXT_AREA = "PopertyTextArea";
5555
public static final String HOMEPAGE_VIEW_CLASS = "HomepageView";
56+
public static final String HOMEPAGE_VIEW_BUTTON_CLASS = "HomepageViewButton";
57+
public static final String CLICKABLE = "Clickable";
58+
public static final String VBOX_BORDER = "VBoxBorder";
59+
public static final String TRASH_IMAGE = "TrashImage";
5660
}

dcs-packaging-tool/dcs-packaging-tool-gui/src/main/java/org/dataconservancy/packaging/gui/Factory.java

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import javafx.stage.Stage;
2323

2424
import org.dataconservancy.packaging.gui.presenter.*;
25-
import org.dataconservancy.packaging.gui.presenter.impl.SelectContentDirectoryPresenter;
25+
import org.dataconservancy.packaging.gui.presenter.impl.OpenExistingPackagePresenterImpl;
2626
import org.dataconservancy.packaging.gui.view.*;
2727
import org.dataconservancy.packaging.tool.api.PackageGenerationService;
2828
import org.dataconservancy.packaging.tool.api.generator.PackageAssembler;
@@ -59,8 +59,10 @@ public class Factory {
5959
private PackageDescriptionPresenter pkgDescriptionPresenter;
6060
private PackageDescriptionView pkgDescriptionView;
6161
private HeaderView headerView;
62-
private SelectContentDirectoryPresenter contentDirectoryPresenter;
63-
private SelectContentDirectoryView contentDirectoryView;
62+
private OpenExistingPackagePresenterImpl openExistingPackagePresenter;
63+
private OpenExistingPackageView openExistingPackageView;
64+
private PackageMetadataPresenter packageMetadataPresenter;
65+
private PackageMetadataView packageMetadataView;
6466

6567
private Labels labels;
6668
private Messages messages;
@@ -144,9 +146,25 @@ private void initializeAssemblers() {
144146
public HeaderView getHeaderView() { return headerView; }
145147
public void setHeaderView(HeaderView headerView) { this.headerView = headerView; }
146148

147-
public SelectContentDirectoryPresenter getContentDirectoryPresenter() { return contentDirectoryPresenter; }
148-
public void setContentDirectoryPresenter(SelectContentDirectoryPresenter presenter) {this.contentDirectoryPresenter = presenter; }
149+
public OpenExistingPackagePresenterImpl getOpenExistingPackagePresenter() { return openExistingPackagePresenter; }
150+
public void setOpenExistingPackagePresenter(OpenExistingPackagePresenterImpl presenter) {this.openExistingPackagePresenter = presenter; }
149151

150-
public SelectContentDirectoryView getContentDirectoryView() { return contentDirectoryView; }
151-
public void setContentDirectoryView(SelectContentDirectoryView contentDirectoryView) { this.contentDirectoryView = contentDirectoryView; }
152+
public OpenExistingPackageView getOpenExistingPackageView() { return openExistingPackageView; }
153+
public void setOpenExistingPackageView(OpenExistingPackageView openExistingPackageView) { this.openExistingPackageView = openExistingPackageView; }
154+
155+
public PackageMetadataPresenter getPackageMetadataPresenter() {
156+
return packageMetadataPresenter;
157+
}
158+
159+
public void setPackageMetadataPresenter(PackageMetadataPresenter packageMetadataPresenter) {
160+
this.packageMetadataPresenter = packageMetadataPresenter;
161+
}
162+
163+
public PackageMetadataView getPackageMetadataView() {
164+
return packageMetadataView;
165+
}
166+
167+
public void setPackageMetadataView(PackageMetadataView packageMetadataView) {
168+
this.packageMetadataView = packageMetadataView;
169+
}
152170
}

dcs-packaging-tool/dcs-packaging-tool-gui/src/main/java/org/dataconservancy/packaging/gui/Help.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public class Help {
3737
public enum HelpKey {
3838

3939
HOMEPAGE_HELP("homepage.help"),
40+
PACKAGE_METADATA_HELP("packagemetadata.help"),
4041
PACKAGE_GENERATION_HELP("packagegeneration.help"),
4142
CREATE_NEW_PACKAGE_HELP("createnewpackage.help"),
4243
PACKAGE_DESCRIPTION_HELP("packagedescription.help");

dcs-packaging-tool/dcs-packaging-tool-gui/src/main/java/org/dataconservancy/packaging/gui/Labels.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,28 @@ public enum LabelKey {
125125
SHOW_IGNORED_TIP("showignored.tip"),
126126
CONTENT_DIRECTORY_LABEL("contentdirectory.label"),
127127
CREATE_NEW_PACKAGE("createnewpackage.label"),
128-
OPEN_EXISTING_PACKAGE("openexistingpackage.label");
129-
128+
OPEN_EXISTING_PACKAGE("openexistingpackage.label"),
129+
HOMEPAGE_PAGE("homepage.page"),
130+
SELECT_DOMAIN_PROFILE_LABEL("selectdomainprofile.label"),
131+
ADD_BUTTON("add.button"),
132+
KEYWORD_LABEL("keyword.label"),
133+
EXTERNAL_DESCRIPTION_LABEL("externaldescritption.label"),
134+
INTERNAL_SENDER_IDENTIFIER_LABEL("internalsenderidentifier.label"),
135+
INTERNAL_DESCRIPTION_LABEL("internaldescritption.label"),
136+
SOURCE_ORGANIZATION_LABEL("sourceorganization.label"),
137+
ORGANIZATION_ADDRESS_LABEL("organizatoinaddress.label"),
138+
BAG_COUNT_LABEL("bagcount.label"),
139+
BAG_GROUP_IDENTIFIER_LABEL("baggroupidentifier.label"),
140+
RIGHTS_LABEL("rights.label"),
141+
RIGHTS_URI_LABEL("rightsuri.label"),
142+
BAGGING_DATE_LABEL("baggingdate.label"),
143+
BAG_SIZE_LABEL("bagsize.label"),
144+
PACKAGE_METADATA("packagemetadata.label"),
145+
SERIALIZATION_FORMAT_LABEL("serialization.label"),
146+
JSON_BUTTON("json.button"),
147+
XML_BUTTON("xml.button"),
148+
TURTLE_BUTTON("turtle.button"),
149+
SELECT_PACKAGE_FILE_LABEL("selectpackagefile.label");
130150

131151
private String property;
132152

0 commit comments

Comments
 (0)