├── .editorconfig ├── .gitignore ├── LICENSE.html ├── NOTICE.html ├── README.md ├── pom.xml ├── src ├── main │ ├── java │ │ └── org │ │ │ └── hypernomicon │ │ │ ├── App.java │ │ │ ├── AppInstance.java │ │ │ ├── Const.java │ │ │ ├── FolderTreeWatcher.java │ │ │ ├── HyperTask.java │ │ │ ├── InterComputerMsg.java │ │ │ ├── InterProcClient.java │ │ │ ├── InterProcDaemon.java │ │ │ ├── Main.java │ │ │ ├── PathInfo.java │ │ │ ├── bib │ │ │ ├── BibCollection.java │ │ │ ├── BibCollectionRow.java │ │ │ ├── BibEntity.java │ │ │ ├── BibEntry.java │ │ │ ├── BibEntryRow.java │ │ │ ├── BibEntryTable.java │ │ │ ├── BibManager.java │ │ │ ├── CollectionTree.java │ │ │ ├── LibraryWrapper.java │ │ │ ├── auth │ │ │ │ └── BibAuthKeys.java │ │ │ ├── authors │ │ │ │ ├── BibAuthor.java │ │ │ │ ├── BibAuthors.java │ │ │ │ ├── BibAuthorsStandalone.java │ │ │ │ └── WorkBibAuthors.java │ │ │ ├── data │ │ │ │ ├── BibData.java │ │ │ │ ├── BibDataRetriever.java │ │ │ │ ├── BibDataStandalone.java │ │ │ │ ├── BibField.java │ │ │ │ ├── BibTexBibData.java │ │ │ │ ├── CrossrefBibData.java │ │ │ │ ├── EntryType.java │ │ │ │ ├── GUIBibData.java │ │ │ │ ├── GoogleBibData.java │ │ │ │ ├── PDFBibData.java │ │ │ │ ├── RISBibData.java │ │ │ │ └── WorkBibData.java │ │ │ ├── mendeley │ │ │ │ ├── MendeleyAuthors.java │ │ │ │ ├── MendeleyDocument.java │ │ │ │ ├── MendeleyEntity.java │ │ │ │ ├── MendeleyFolder.java │ │ │ │ ├── MendeleyOAuthApi.java │ │ │ │ ├── MendeleyWrapper.java │ │ │ │ └── auth │ │ │ │ │ └── MendeleyAuthKeys.java │ │ │ ├── reports │ │ │ │ ├── HtmlReportGenerator.java │ │ │ │ ├── PlainTextReportGenerator.java │ │ │ │ └── ReportGenerator.java │ │ │ └── zotero │ │ │ │ ├── ZoteroAuthors.java │ │ │ │ ├── ZoteroCollection.java │ │ │ │ ├── ZoteroDate.java │ │ │ │ ├── ZoteroEntity.java │ │ │ │ ├── ZoteroItem.java │ │ │ │ ├── ZoteroOAuthApi.java │ │ │ │ ├── ZoteroWrapper.java │ │ │ │ └── auth │ │ │ │ └── ZoteroAuthKeys.java │ │ │ ├── dialogs │ │ │ ├── AboutDlgCtrlr.java │ │ │ ├── ChangeIDDlgCtrlr.java │ │ │ ├── ChooseParentWorkFileDlgCtrlr.java │ │ │ ├── FavOrderDlgCtrlr.java │ │ │ ├── FileDlgCtrlr.java │ │ │ ├── HelpDlgCtrlr.java │ │ │ ├── ImportBibEntryDlgCtrlr.java │ │ │ ├── InsertPictureDlgCtrlr.java │ │ │ ├── InvestigationsDlgCtrlr.java │ │ │ ├── LockedDlgCtrlr.java │ │ │ ├── MergeSpokeDlgCtrlr.java │ │ │ ├── MergeTermDlgCtrlr.java │ │ │ ├── NewArgDlgCtrlr.java │ │ │ ├── NewCategoryDlgCtrlr.java │ │ │ ├── NewDatabaseDlgCtrlr.java │ │ │ ├── NewInstDlgCtrlr.java │ │ │ ├── NewLinkDlgCtrlr.java │ │ │ ├── NewPersonDlgCtrlr.java │ │ │ ├── NewRegionDlgCtrlr.java │ │ │ ├── NewVersionDlgCtrlr.java │ │ │ ├── ObjectOrderDlgCtrlr.java │ │ │ ├── PictureDlgCtrlr.java │ │ │ ├── ProgressDlgCtrlr.java │ │ │ ├── RecordDropdownDlgCtrlr.java │ │ │ ├── RecordSelectDlgCtrlr.java │ │ │ ├── RenameDlgCtrlr.java │ │ │ ├── SearchKeySelectDlgCtrlr.java │ │ │ ├── SelectTermDlgCtrlr.java │ │ │ ├── SelectWorkDlgCtrlr.java │ │ │ ├── SortOrderDlgCtrlr.java │ │ │ ├── TestConsoleDlgCtrlr.java │ │ │ ├── UpdateISBNsDlgCtrlr.java │ │ │ ├── ValueSelectDlgCtrlr.java │ │ │ ├── VerdictDlgCtrlr.java │ │ │ ├── WelcomeDlgCtrlr.java │ │ │ ├── WorkDlgCtrlr.java │ │ │ ├── base │ │ │ │ ├── DialogBase.java │ │ │ │ ├── ModalDialog.java │ │ │ │ └── NonmodalWindow.java │ │ │ └── workMerge │ │ │ │ ├── BibFieldCtrlr.java │ │ │ │ ├── BibFieldRow.java │ │ │ │ └── MergeWorksDlgCtrlr.java │ │ │ ├── fileManager │ │ │ ├── AbstractEntityWithPath.java │ │ │ ├── EntityWithPath.java │ │ │ ├── EntityWithRow.java │ │ │ ├── FileManager.java │ │ │ ├── FileRow.java │ │ │ ├── FileTable.java │ │ │ ├── FolderHistory.java │ │ │ ├── FolderHistoryItem.java │ │ │ └── FolderTreeWrapper.java │ │ │ ├── model │ │ │ ├── AbstractHyperDB.java │ │ │ ├── DatasetAccessor.java │ │ │ ├── Exceptions.java │ │ │ ├── HDI_Schema.java │ │ │ ├── HDX_BibDateElement.java │ │ │ ├── HDX_Element.java │ │ │ ├── HyperDB.java │ │ │ ├── KeywordLinkList.java │ │ │ ├── MentionsIndex.java │ │ │ ├── SearchKeys.java │ │ │ ├── Tag.java │ │ │ ├── TestHyperDB.java │ │ │ ├── data │ │ │ │ ├── HyperCore.java │ │ │ │ └── HyperDataset.java │ │ │ ├── items │ │ │ │ ├── Author.java │ │ │ │ ├── Authors.java │ │ │ │ ├── BibliographicDate.java │ │ │ │ ├── BibliographicYear.java │ │ │ │ ├── FileAuthors.java │ │ │ │ ├── HDI_Base.java │ │ │ │ ├── HDI_OfflineAuthors.java │ │ │ │ ├── HDI_OfflineBase.java │ │ │ │ ├── HDI_OfflineBibDate.java │ │ │ │ ├── HDI_OfflineBoolean.java │ │ │ │ ├── HDI_OfflineNestedPointer.java │ │ │ │ ├── HDI_OfflinePath.java │ │ │ │ ├── HDI_OfflinePersonName.java │ │ │ │ ├── HDI_OfflinePointerMulti.java │ │ │ │ ├── HDI_OfflinePointerSingle.java │ │ │ │ ├── HDI_OfflineString.java │ │ │ │ ├── HDI_OfflineTernary.java │ │ │ │ ├── HDI_OnlineAuthors.java │ │ │ │ ├── HDI_OnlineBase.java │ │ │ │ ├── HDI_OnlineBibDate.java │ │ │ │ ├── HDI_OnlineBibEntryKey.java │ │ │ │ ├── HDI_OnlineBoolean.java │ │ │ │ ├── HDI_OnlineNestedPointer.java │ │ │ │ ├── HDI_OnlinePath.java │ │ │ │ ├── HDI_OnlinePersonName.java │ │ │ │ ├── HDI_OnlinePointerMulti.java │ │ │ │ ├── HDI_OnlinePointerSingle.java │ │ │ │ ├── HDI_OnlineString.java │ │ │ │ ├── HDI_OnlineTernary.java │ │ │ │ ├── HyperPath.java │ │ │ │ ├── NameItem.java │ │ │ │ ├── PersonName.java │ │ │ │ └── WorkAuthors.java │ │ │ ├── records │ │ │ │ ├── HDT_Argument.java │ │ │ │ ├── HDT_Concept.java │ │ │ │ ├── HDT_Debate.java │ │ │ │ ├── HDT_Folder.java │ │ │ │ ├── HDT_Glossary.java │ │ │ │ ├── HDT_Institution.java │ │ │ │ ├── HDT_Investigation.java │ │ │ │ ├── HDT_MiscFile.java │ │ │ │ ├── HDT_Note.java │ │ │ │ ├── HDT_Person.java │ │ │ │ ├── HDT_PersonGroup.java │ │ │ │ ├── HDT_Position.java │ │ │ │ ├── HDT_Record.java │ │ │ │ ├── HDT_RecordBase.java │ │ │ │ ├── HDT_RecordWithAuthors.java │ │ │ │ ├── HDT_RecordWithPath.java │ │ │ │ ├── HDT_Region.java │ │ │ │ ├── HDT_Subfield.java │ │ │ │ ├── HDT_Term.java │ │ │ │ ├── HDT_Work.java │ │ │ │ ├── HDT_WorkFile.java │ │ │ │ ├── HDT_WorkLabel.java │ │ │ │ ├── RecordState.java │ │ │ │ ├── RecordType.java │ │ │ │ └── SimpleRecordTypes.java │ │ │ ├── relations │ │ │ │ ├── HyperObjIterator.java │ │ │ │ ├── HyperObjList.java │ │ │ │ ├── HyperObjListIterator.java │ │ │ │ ├── HyperObjPointer.java │ │ │ │ ├── HyperObjSubList.java │ │ │ │ ├── HyperSubjIterator.java │ │ │ │ ├── HyperSubjList.java │ │ │ │ ├── HyperSubjListIterator.java │ │ │ │ ├── HyperSubjPointer.java │ │ │ │ ├── HyperSubjSubList.java │ │ │ │ ├── NestedValue.java │ │ │ │ ├── ObjectGroup.java │ │ │ │ └── RelationSet.java │ │ │ └── unities │ │ │ │ ├── HDI_OfflineHubSpokes.java │ │ │ │ ├── HDI_OfflineMainTextAndHub.java │ │ │ │ ├── HDI_OnlineHubSpokes.java │ │ │ │ ├── HDI_OnlineMainTextAndHub.java │ │ │ │ ├── HDT_Hub.java │ │ │ │ ├── HDT_RecordWithDescription.java │ │ │ │ ├── HDT_RecordWithMainText.java │ │ │ │ ├── HtmlAndPlainText.java │ │ │ │ ├── KeyWork.java │ │ │ │ └── MainText.java │ │ │ ├── previewWindow │ │ │ ├── ContentsWindow.java │ │ │ ├── OfficePreviewer.java │ │ │ ├── PDFJSWrapper.java │ │ │ ├── PreviewAltDisplayCtrlr.java │ │ │ ├── PreviewWindow.java │ │ │ └── PreviewWrapper.java │ │ │ ├── query │ │ │ ├── ArgumentQueries.java │ │ │ ├── FolderQueries.java │ │ │ ├── GeneralQueries.java │ │ │ ├── PersonQueries.java │ │ │ ├── Query.java │ │ │ ├── QueryType.java │ │ │ ├── QueryWhereBibField.java │ │ │ ├── QueryWhereDisplayedRecords.java │ │ │ ├── QueryWhereField.java │ │ │ ├── QueryWhereKeyWorks.java │ │ │ ├── QueryWhereRelative.java │ │ │ ├── WorkQueries.java │ │ │ ├── reports │ │ │ │ ├── DanglingLabelsReportEngine.java │ │ │ │ ├── DupAuthorsReportEngine.java │ │ │ │ ├── LicenseReportEngine.java │ │ │ │ ├── ReportEngine.java │ │ │ │ └── ReportTable.java │ │ │ ├── sources │ │ │ │ ├── AllQuerySource.java │ │ │ │ ├── CombinedFilteredQuerySource.java │ │ │ │ ├── CombinedUnfilteredQuerySource.java │ │ │ │ ├── DatasetQuerySource.java │ │ │ │ ├── FilteredQuerySource.java │ │ │ │ └── QuerySource.java │ │ │ └── ui │ │ │ │ ├── AbstractColumnGroup.java │ │ │ │ ├── ColumnGroup.java │ │ │ │ ├── ColumnGroupItem.java │ │ │ │ ├── NewQueryFavDlgCtrlr.java │ │ │ │ ├── QueriesTabCtrlr.java │ │ │ │ ├── QueryCtrlr.java │ │ │ │ ├── ResultCellValue.java │ │ │ │ ├── ResultColumn.java │ │ │ │ ├── ResultRow.java │ │ │ │ ├── ResultsTable.java │ │ │ │ ├── SearchResultFileList.java │ │ │ │ └── SelectColumnsDlgCtrlr.java │ │ │ ├── settings │ │ │ ├── ArgumentNamingCtrlr.java │ │ │ ├── ArgumentNamingSettings.java │ │ │ ├── EditWebButtonCtrlr.java │ │ │ ├── EditWebButtonsDlgCtrlr.java │ │ │ ├── ExclWorkTypesDlgCtrlr.java │ │ │ ├── FolderSettingsCtrlr.java │ │ │ ├── LaunchCommandsDlgCtrlr.java │ │ │ ├── SettingsDlgCtrlr.java │ │ │ ├── WebButtonBar.java │ │ │ ├── WebButtonCtrl.java │ │ │ ├── WebButtonSettingsCtrlr.java │ │ │ ├── WebButtonTable.java │ │ │ ├── WorkFileNamingSettingsCtrlr.java │ │ │ ├── WorkSearchKeyCtrlr.java │ │ │ ├── WorkSearchKeySettings.java │ │ │ └── WorkSearchKeysCtrlr.java │ │ │ ├── tree │ │ │ ├── AbstractTreeRow.java │ │ │ ├── AbstractTreeWrapper.java │ │ │ ├── ChangeParentDlgCtrlr.java │ │ │ ├── ChooseParentDlgCtrlr.java │ │ │ ├── DragConceptDlgCtrlr.java │ │ │ ├── RecordTreeEdge.java │ │ │ ├── TreeCB.java │ │ │ ├── TreeCellValue.java │ │ │ ├── TreeCtrlr.java │ │ │ ├── TreeModel.java │ │ │ ├── TreeRow.java │ │ │ ├── TreeSelector.java │ │ │ ├── TreeTabCtrlr.java │ │ │ └── TreeWrapper.java │ │ │ ├── util │ │ │ ├── AsyncHttpClient.java │ │ │ ├── BasicTextMatcher.java │ │ │ ├── BidiOneToManyMap.java │ │ │ ├── BidiOneToManyRecordMap.java │ │ │ ├── CryptoUtil.java │ │ │ ├── DesktopUtil.java │ │ │ ├── EnumBasedTable.java │ │ │ ├── FileDownloadUtility.java │ │ │ ├── FilenameMap.java │ │ │ ├── HttpHeader.java │ │ │ ├── JsonHttpClient.java │ │ │ ├── MediaUtil.java │ │ │ ├── PageRange.java │ │ │ ├── PopupDialog.java │ │ │ ├── SplitString.java │ │ │ ├── StopWatch.java │ │ │ ├── UIUtil.java │ │ │ ├── Util.java │ │ │ ├── VersionNumber.java │ │ │ ├── WebButton.java │ │ │ ├── boolEvaluator │ │ │ │ ├── BoolEvaluator.java │ │ │ │ ├── BoolExpression.java │ │ │ │ └── BoolExpressionToken.java │ │ │ ├── filePath │ │ │ │ ├── FilePath.java │ │ │ │ ├── FilePathIterator.java │ │ │ │ ├── FilePathSet.java │ │ │ │ └── InnerFilePath.java │ │ │ ├── json │ │ │ │ ├── JsonArray.java │ │ │ │ └── JsonObj.java │ │ │ └── prefs │ │ │ │ ├── TransientPreferences.java │ │ │ │ └── XmlSupport.java │ │ │ └── view │ │ │ ├── HyperFavorites.java │ │ │ ├── HyperView.java │ │ │ ├── HyperViewSequence.java │ │ │ ├── MainCtrlr.java │ │ │ ├── OmniFinder.java │ │ │ ├── WindowStack.java │ │ │ ├── cellValues │ │ │ ├── AbstractHTC.java │ │ │ ├── BibDateHTC.java │ │ │ ├── BibEntryHTC.java │ │ │ ├── GenericNonRecordHTC.java │ │ │ ├── HyperTableCell.java │ │ │ ├── ObjectCellValue.java │ │ │ ├── PageRangeHTC.java │ │ │ └── RecordHTC.java │ │ │ ├── controls │ │ │ ├── CheckBoxMenuItem.java │ │ │ ├── HiddenSidesPane.java │ │ │ ├── HiddenSidesPaneSkin.java │ │ │ └── WebTooltip.java │ │ │ ├── mainText │ │ │ ├── CharacterGrid.java │ │ │ ├── Highlighter.java │ │ │ ├── HtmlTextNodeList.java │ │ │ ├── MainTextCtrlr.java │ │ │ ├── MainTextUtil.java │ │ │ ├── MainTextWrapper.java │ │ │ └── SymbolPickerDlgCtrlr.java │ │ │ ├── populators │ │ │ ├── BibEntryPopulator.java │ │ │ ├── CustomPopulator.java │ │ │ ├── HybridSubjectPopulator.java │ │ │ ├── Populator.java │ │ │ ├── QueryPopulator.java │ │ │ ├── RecordByTypePopulator.java │ │ │ ├── RecordPopulator.java │ │ │ ├── RecordTypePopulator.java │ │ │ ├── RelationPopulator.java │ │ │ ├── StandardPopulator.java │ │ │ ├── SubjectPopulator.java │ │ │ ├── TagItemPopulator.java │ │ │ └── VariablePopulator.java │ │ │ ├── tabs │ │ │ ├── ArgumentLowerPaneCtrlr.java │ │ │ ├── ArgumentTabCtrlr.java │ │ │ ├── DebateTabCtrlr.java │ │ │ ├── FileTabCtrlr.java │ │ │ ├── HyperNodeTab.java │ │ │ ├── HyperTab.java │ │ │ ├── InstTabCtrlr.java │ │ │ ├── InvestigationView.java │ │ │ ├── NoteTabCtrlr.java │ │ │ ├── PersonTabCtrlr.java │ │ │ ├── PositionTabCtrlr.java │ │ │ ├── TermTabCtrlr.java │ │ │ └── WorkTabCtrlr.java │ │ │ └── wrappers │ │ │ ├── AbstractRow.java │ │ │ ├── AutoCompleteCBHelper.java │ │ │ ├── ButtonCell.java │ │ │ ├── CheckboxCell.java │ │ │ ├── ClickHoldButton.java │ │ │ ├── ComboBoxCell.java │ │ │ ├── CommitableWrapper.java │ │ │ ├── DateControlsWrapper.java │ │ │ ├── DragNDropContainer.java │ │ │ ├── HasRightClickableRows.java │ │ │ ├── HyperCB.java │ │ │ ├── HyperTable.java │ │ │ ├── HyperTableColumn.java │ │ │ ├── HyperTableRow.java │ │ │ ├── MenuItemSchema.java │ │ │ ├── OneTouchExpandableWrapper.java │ │ │ ├── ReadOnlyCell.java │ │ │ ├── TextFieldCell.java │ │ │ └── ToolBarWrapper.java │ └── resources │ │ ├── META-INF │ │ └── teamdev.licenses │ │ ├── org │ │ └── hypernomicon │ │ │ ├── bib │ │ │ └── BibManager.fxml │ │ │ ├── dialogs │ │ │ ├── AboutDlg.fxml │ │ │ ├── ChangeIDDlg.fxml │ │ │ ├── ChooseParentWorkFileDlg.fxml │ │ │ ├── FavOrderDlg.fxml │ │ │ ├── FileDlg.fxml │ │ │ ├── HelpDlg.fxml │ │ │ ├── ImportBibEntryDlg.fxml │ │ │ ├── InsertPictureDlg.fxml │ │ │ ├── InvestigationsDlg.fxml │ │ │ ├── LockedDlg.fxml │ │ │ ├── MergeSpokeDlg.fxml │ │ │ ├── MergeTermDlg.fxml │ │ │ ├── NewArgDlg.fxml │ │ │ ├── NewCategoryDlg.fxml │ │ │ ├── NewDatabaseDlg.fxml │ │ │ ├── NewInstDlg.fxml │ │ │ ├── NewLinkDlg.fxml │ │ │ ├── NewPersonDlg.fxml │ │ │ ├── NewRegionDlg.fxml │ │ │ ├── NewVersionDlg.fxml │ │ │ ├── ObjectOrderDlg.fxml │ │ │ ├── PictureDlg.fxml │ │ │ ├── ProgressDlg.fxml │ │ │ ├── RecordDropdownDlg.fxml │ │ │ ├── RecordSelectDlg.fxml │ │ │ ├── RenameDlg.fxml │ │ │ ├── SearchKeySelectDlg.fxml │ │ │ ├── SelectTermDlg.fxml │ │ │ ├── SelectWorkDlg.fxml │ │ │ ├── SortOrderDlg.fxml │ │ │ ├── TestConsoleDlg.fxml │ │ │ ├── UpdateISBNsDlg.fxml │ │ │ ├── ValueSelectDlg.fxml │ │ │ ├── VerdictDlg.fxml │ │ │ ├── WelcomeDlg.fxml │ │ │ ├── WorkDlg.fxml │ │ │ ├── about.css │ │ │ ├── welcome.css │ │ │ └── workMerge │ │ │ │ ├── AuthorsCtrl.fxml │ │ │ │ ├── DateCtrl.fxml │ │ │ │ ├── EntryTypeCtrl.fxml │ │ │ │ ├── MergeWorksDlg.fxml │ │ │ │ ├── MultiLineCheckBoxCtrl.fxml │ │ │ │ ├── MultiLineCtrl.fxml │ │ │ │ ├── SingleLineCtrl.fxml │ │ │ │ ├── TitleRowCtrl.fxml │ │ │ │ └── WorkTypeCtrl.fxml │ │ │ ├── fileManager │ │ │ └── FileManager.fxml │ │ │ ├── previewWindow │ │ │ ├── ContentsWindow.fxml │ │ │ ├── PreviewAltDisplay.fxml │ │ │ └── PreviewWindow.fxml │ │ │ ├── query │ │ │ ├── NewQueryFavDlg.fxml │ │ │ ├── QueriesTab.fxml │ │ │ ├── Query.fxml │ │ │ └── SelectColumnsDlg.fxml │ │ │ ├── resources │ │ │ ├── Shortcuts.html │ │ │ ├── ZoteroTemplates.json │ │ │ ├── blank_db.zip │ │ │ ├── css.css │ │ │ ├── dateFormats.json │ │ │ ├── empty.pdf │ │ │ ├── images │ │ │ │ ├── argument.png │ │ │ │ ├── arrow-090.png │ │ │ │ ├── arrow-180.png │ │ │ │ ├── arrow-270.png │ │ │ │ ├── arrow.png │ │ │ │ ├── book.png │ │ │ │ ├── bookshelf.png │ │ │ │ ├── broom.png │ │ │ │ ├── building-hedge.png │ │ │ │ ├── calendar-month.png │ │ │ │ ├── cancel.png │ │ │ │ ├── card-catalog.png │ │ │ │ ├── card-catalog_tr.png │ │ │ │ ├── chapter.png │ │ │ │ ├── chart.png │ │ │ │ ├── control-stop-180.png │ │ │ │ ├── control-stop.png │ │ │ │ ├── cut.png │ │ │ │ ├── debate.png │ │ │ │ ├── deletered.png │ │ │ │ ├── details.png │ │ │ │ ├── document-code.png │ │ │ │ ├── document-pdf.png │ │ │ │ ├── document-tex.png │ │ │ │ ├── document-text.png │ │ │ │ ├── document.png │ │ │ │ ├── document_insert.png │ │ │ │ ├── documents-stack.png │ │ │ │ ├── download.png │ │ │ │ ├── drawer.png │ │ │ │ ├── edit-rename.png │ │ │ │ ├── edit_mathematics.png │ │ │ │ ├── file.png │ │ │ │ ├── folder.png │ │ │ │ ├── folder_add.png │ │ │ │ ├── folder_closed.png │ │ │ │ ├── folders_explorer.png │ │ │ │ ├── form-pencil.png │ │ │ │ ├── from_current_slide.png │ │ │ │ ├── gear-wrench.png │ │ │ │ ├── glasses-db.png │ │ │ │ ├── globe.png │ │ │ │ ├── highlighter-left.png │ │ │ │ ├── highlighter-right.png │ │ │ │ ├── image.png │ │ │ │ ├── inbox-document-text.png │ │ │ │ ├── information-italic.png │ │ │ │ ├── json.png │ │ │ │ ├── key-work-details.png │ │ │ │ ├── keyword-link-add.png │ │ │ │ ├── lock.png │ │ │ │ ├── lock_open.png │ │ │ │ ├── logo-128x128.png │ │ │ │ ├── logo-16x16.png │ │ │ │ ├── logo-256x256.png │ │ │ │ ├── logo-32x32.png │ │ │ │ ├── logo-48x48.png │ │ │ │ ├── logo-64x64.png │ │ │ │ ├── logo.ico │ │ │ │ ├── logobig.png │ │ │ │ ├── magnifier.png │ │ │ │ ├── magnifier_zoom_in.png │ │ │ │ ├── magnifier_zoom_out.png │ │ │ │ ├── nodes.png │ │ │ │ ├── notebook-pencil.png │ │ │ │ ├── page_copy.png │ │ │ │ ├── page_paste.png │ │ │ │ ├── page_white_vector.png │ │ │ │ ├── paper-add.png │ │ │ │ ├── paper-minus.png │ │ │ │ ├── paper.png │ │ │ │ ├── pencil.png │ │ │ │ ├── people.png │ │ │ │ ├── picture_add.png │ │ │ │ ├── pointer-preview.png │ │ │ │ ├── pointer-rocket.png │ │ │ │ ├── position.png │ │ │ │ ├── question.png │ │ │ │ ├── recording.png │ │ │ │ ├── refresh.png │ │ │ │ ├── rocket-fly.png │ │ │ │ ├── sort_19.png │ │ │ │ ├── sort_az.png │ │ │ │ ├── sound_wave.png │ │ │ │ ├── star-empty.png │ │ │ │ ├── star.png │ │ │ │ ├── switch_window.png │ │ │ │ ├── table-sheet.png │ │ │ │ ├── tag.png │ │ │ │ ├── term.png │ │ │ │ ├── text-html.png │ │ │ │ ├── text-search2.png │ │ │ │ ├── text_letter_omega.png │ │ │ │ ├── text_subscript.png │ │ │ │ ├── text_superscript.png │ │ │ │ ├── thesis.png │ │ │ │ ├── treeview-small.png │ │ │ │ ├── treeview.png │ │ │ │ ├── triangle-down.png │ │ │ │ ├── triangle-up.png │ │ │ │ ├── unknown.png │ │ │ │ ├── view-document.png │ │ │ │ ├── view-form.png │ │ │ │ ├── vise-drawer.png │ │ │ │ ├── wand-magic.png │ │ │ │ ├── world_go.png │ │ │ │ └── world_link.png │ │ │ ├── mainText.js │ │ │ ├── mainTextEdit.js │ │ │ ├── mark.es6.min.js │ │ │ ├── match-jump.js │ │ │ ├── pdfjs │ │ │ │ ├── LICENSE │ │ │ │ ├── build │ │ │ │ │ ├── pdf.js │ │ │ │ │ ├── pdf.js.map │ │ │ │ │ ├── pdf.worker.js │ │ │ │ │ └── pdf.worker.js.map │ │ │ │ └── web │ │ │ │ │ ├── cmaps │ │ │ │ │ ├── 78-EUC-H.bcmap │ │ │ │ │ ├── 78-EUC-V.bcmap │ │ │ │ │ ├── 78-H.bcmap │ │ │ │ │ ├── 78-RKSJ-H.bcmap │ │ │ │ │ ├── 78-RKSJ-V.bcmap │ │ │ │ │ ├── 78-V.bcmap │ │ │ │ │ ├── 78ms-RKSJ-H.bcmap │ │ │ │ │ ├── 78ms-RKSJ-V.bcmap │ │ │ │ │ ├── 83pv-RKSJ-H.bcmap │ │ │ │ │ ├── 90ms-RKSJ-H.bcmap │ │ │ │ │ ├── 90ms-RKSJ-V.bcmap │ │ │ │ │ ├── 90msp-RKSJ-H.bcmap │ │ │ │ │ ├── 90msp-RKSJ-V.bcmap │ │ │ │ │ ├── 90pv-RKSJ-H.bcmap │ │ │ │ │ ├── 90pv-RKSJ-V.bcmap │ │ │ │ │ ├── Add-H.bcmap │ │ │ │ │ ├── Add-RKSJ-H.bcmap │ │ │ │ │ ├── Add-RKSJ-V.bcmap │ │ │ │ │ ├── Add-V.bcmap │ │ │ │ │ ├── Adobe-CNS1-0.bcmap │ │ │ │ │ ├── Adobe-CNS1-1.bcmap │ │ │ │ │ ├── Adobe-CNS1-2.bcmap │ │ │ │ │ ├── Adobe-CNS1-3.bcmap │ │ │ │ │ ├── Adobe-CNS1-4.bcmap │ │ │ │ │ ├── Adobe-CNS1-5.bcmap │ │ │ │ │ ├── Adobe-CNS1-6.bcmap │ │ │ │ │ ├── Adobe-CNS1-UCS2.bcmap │ │ │ │ │ ├── Adobe-GB1-0.bcmap │ │ │ │ │ ├── Adobe-GB1-1.bcmap │ │ │ │ │ ├── Adobe-GB1-2.bcmap │ │ │ │ │ ├── Adobe-GB1-3.bcmap │ │ │ │ │ ├── Adobe-GB1-4.bcmap │ │ │ │ │ ├── Adobe-GB1-5.bcmap │ │ │ │ │ ├── Adobe-GB1-UCS2.bcmap │ │ │ │ │ ├── Adobe-Japan1-0.bcmap │ │ │ │ │ ├── Adobe-Japan1-1.bcmap │ │ │ │ │ ├── Adobe-Japan1-2.bcmap │ │ │ │ │ ├── Adobe-Japan1-3.bcmap │ │ │ │ │ ├── Adobe-Japan1-4.bcmap │ │ │ │ │ ├── Adobe-Japan1-5.bcmap │ │ │ │ │ ├── Adobe-Japan1-6.bcmap │ │ │ │ │ ├── Adobe-Japan1-UCS2.bcmap │ │ │ │ │ ├── Adobe-Korea1-0.bcmap │ │ │ │ │ ├── Adobe-Korea1-1.bcmap │ │ │ │ │ ├── Adobe-Korea1-2.bcmap │ │ │ │ │ ├── Adobe-Korea1-UCS2.bcmap │ │ │ │ │ ├── B5-H.bcmap │ │ │ │ │ ├── B5-V.bcmap │ │ │ │ │ ├── B5pc-H.bcmap │ │ │ │ │ ├── B5pc-V.bcmap │ │ │ │ │ ├── CNS-EUC-H.bcmap │ │ │ │ │ ├── CNS-EUC-V.bcmap │ │ │ │ │ ├── CNS1-H.bcmap │ │ │ │ │ ├── CNS1-V.bcmap │ │ │ │ │ ├── CNS2-H.bcmap │ │ │ │ │ ├── CNS2-V.bcmap │ │ │ │ │ ├── ETHK-B5-H.bcmap │ │ │ │ │ ├── ETHK-B5-V.bcmap │ │ │ │ │ ├── ETen-B5-H.bcmap │ │ │ │ │ ├── ETen-B5-V.bcmap │ │ │ │ │ ├── ETenms-B5-H.bcmap │ │ │ │ │ ├── ETenms-B5-V.bcmap │ │ │ │ │ ├── EUC-H.bcmap │ │ │ │ │ ├── EUC-V.bcmap │ │ │ │ │ ├── Ext-H.bcmap │ │ │ │ │ ├── Ext-RKSJ-H.bcmap │ │ │ │ │ ├── Ext-RKSJ-V.bcmap │ │ │ │ │ ├── Ext-V.bcmap │ │ │ │ │ ├── GB-EUC-H.bcmap │ │ │ │ │ ├── GB-EUC-V.bcmap │ │ │ │ │ ├── GB-H.bcmap │ │ │ │ │ ├── GB-V.bcmap │ │ │ │ │ ├── GBK-EUC-H.bcmap │ │ │ │ │ ├── GBK-EUC-V.bcmap │ │ │ │ │ ├── GBK2K-H.bcmap │ │ │ │ │ ├── GBK2K-V.bcmap │ │ │ │ │ ├── GBKp-EUC-H.bcmap │ │ │ │ │ ├── GBKp-EUC-V.bcmap │ │ │ │ │ ├── GBT-EUC-H.bcmap │ │ │ │ │ ├── GBT-EUC-V.bcmap │ │ │ │ │ ├── GBT-H.bcmap │ │ │ │ │ ├── GBT-V.bcmap │ │ │ │ │ ├── GBTpc-EUC-H.bcmap │ │ │ │ │ ├── GBTpc-EUC-V.bcmap │ │ │ │ │ ├── GBpc-EUC-H.bcmap │ │ │ │ │ ├── GBpc-EUC-V.bcmap │ │ │ │ │ ├── H.bcmap │ │ │ │ │ ├── HKdla-B5-H.bcmap │ │ │ │ │ ├── HKdla-B5-V.bcmap │ │ │ │ │ ├── HKdlb-B5-H.bcmap │ │ │ │ │ ├── HKdlb-B5-V.bcmap │ │ │ │ │ ├── HKgccs-B5-H.bcmap │ │ │ │ │ ├── HKgccs-B5-V.bcmap │ │ │ │ │ ├── HKm314-B5-H.bcmap │ │ │ │ │ ├── HKm314-B5-V.bcmap │ │ │ │ │ ├── HKm471-B5-H.bcmap │ │ │ │ │ ├── HKm471-B5-V.bcmap │ │ │ │ │ ├── HKscs-B5-H.bcmap │ │ │ │ │ ├── HKscs-B5-V.bcmap │ │ │ │ │ ├── Hankaku.bcmap │ │ │ │ │ ├── Hiragana.bcmap │ │ │ │ │ ├── KSC-EUC-H.bcmap │ │ │ │ │ ├── KSC-EUC-V.bcmap │ │ │ │ │ ├── KSC-H.bcmap │ │ │ │ │ ├── KSC-Johab-H.bcmap │ │ │ │ │ ├── KSC-Johab-V.bcmap │ │ │ │ │ ├── KSC-V.bcmap │ │ │ │ │ ├── KSCms-UHC-H.bcmap │ │ │ │ │ ├── KSCms-UHC-HW-H.bcmap │ │ │ │ │ ├── KSCms-UHC-HW-V.bcmap │ │ │ │ │ ├── KSCms-UHC-V.bcmap │ │ │ │ │ ├── KSCpc-EUC-H.bcmap │ │ │ │ │ ├── KSCpc-EUC-V.bcmap │ │ │ │ │ ├── Katakana.bcmap │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── NWP-H.bcmap │ │ │ │ │ ├── NWP-V.bcmap │ │ │ │ │ ├── RKSJ-H.bcmap │ │ │ │ │ ├── RKSJ-V.bcmap │ │ │ │ │ ├── Roman.bcmap │ │ │ │ │ ├── UniCNS-UCS2-H.bcmap │ │ │ │ │ ├── UniCNS-UCS2-V.bcmap │ │ │ │ │ ├── UniCNS-UTF16-H.bcmap │ │ │ │ │ ├── UniCNS-UTF16-V.bcmap │ │ │ │ │ ├── UniCNS-UTF32-H.bcmap │ │ │ │ │ ├── UniCNS-UTF32-V.bcmap │ │ │ │ │ ├── UniCNS-UTF8-H.bcmap │ │ │ │ │ ├── UniCNS-UTF8-V.bcmap │ │ │ │ │ ├── UniGB-UCS2-H.bcmap │ │ │ │ │ ├── UniGB-UCS2-V.bcmap │ │ │ │ │ ├── UniGB-UTF16-H.bcmap │ │ │ │ │ ├── UniGB-UTF16-V.bcmap │ │ │ │ │ ├── UniGB-UTF32-H.bcmap │ │ │ │ │ ├── UniGB-UTF32-V.bcmap │ │ │ │ │ ├── UniGB-UTF8-H.bcmap │ │ │ │ │ ├── UniGB-UTF8-V.bcmap │ │ │ │ │ ├── UniJIS-UCS2-H.bcmap │ │ │ │ │ ├── UniJIS-UCS2-HW-H.bcmap │ │ │ │ │ ├── UniJIS-UCS2-HW-V.bcmap │ │ │ │ │ ├── UniJIS-UCS2-V.bcmap │ │ │ │ │ ├── UniJIS-UTF16-H.bcmap │ │ │ │ │ ├── UniJIS-UTF16-V.bcmap │ │ │ │ │ ├── UniJIS-UTF32-H.bcmap │ │ │ │ │ ├── UniJIS-UTF32-V.bcmap │ │ │ │ │ ├── UniJIS-UTF8-H.bcmap │ │ │ │ │ ├── UniJIS-UTF8-V.bcmap │ │ │ │ │ ├── UniJIS2004-UTF16-H.bcmap │ │ │ │ │ ├── UniJIS2004-UTF16-V.bcmap │ │ │ │ │ ├── UniJIS2004-UTF32-H.bcmap │ │ │ │ │ ├── UniJIS2004-UTF32-V.bcmap │ │ │ │ │ ├── UniJIS2004-UTF8-H.bcmap │ │ │ │ │ ├── UniJIS2004-UTF8-V.bcmap │ │ │ │ │ ├── UniJISPro-UCS2-HW-V.bcmap │ │ │ │ │ ├── UniJISPro-UCS2-V.bcmap │ │ │ │ │ ├── UniJISPro-UTF8-V.bcmap │ │ │ │ │ ├── UniJISX0213-UTF32-H.bcmap │ │ │ │ │ ├── UniJISX0213-UTF32-V.bcmap │ │ │ │ │ ├── UniJISX02132004-UTF32-H.bcmap │ │ │ │ │ ├── UniJISX02132004-UTF32-V.bcmap │ │ │ │ │ ├── UniKS-UCS2-H.bcmap │ │ │ │ │ ├── UniKS-UCS2-V.bcmap │ │ │ │ │ ├── UniKS-UTF16-H.bcmap │ │ │ │ │ ├── UniKS-UTF16-V.bcmap │ │ │ │ │ ├── UniKS-UTF32-H.bcmap │ │ │ │ │ ├── UniKS-UTF32-V.bcmap │ │ │ │ │ ├── UniKS-UTF8-H.bcmap │ │ │ │ │ ├── UniKS-UTF8-V.bcmap │ │ │ │ │ ├── V.bcmap │ │ │ │ │ └── WP-Symbol.bcmap │ │ │ │ │ ├── debugger.js │ │ │ │ │ ├── images │ │ │ │ │ ├── annotation-check.svg │ │ │ │ │ ├── annotation-comment.svg │ │ │ │ │ ├── annotation-help.svg │ │ │ │ │ ├── annotation-insert.svg │ │ │ │ │ ├── annotation-key.svg │ │ │ │ │ ├── annotation-newparagraph.svg │ │ │ │ │ ├── annotation-noicon.svg │ │ │ │ │ ├── annotation-note.svg │ │ │ │ │ ├── annotation-paragraph.svg │ │ │ │ │ ├── findbarButton-next-rtl.png │ │ │ │ │ ├── findbarButton-next-rtl@2x.png │ │ │ │ │ ├── findbarButton-next.png │ │ │ │ │ ├── findbarButton-next@2x.png │ │ │ │ │ ├── findbarButton-previous-rtl.png │ │ │ │ │ ├── findbarButton-previous-rtl@2x.png │ │ │ │ │ ├── findbarButton-previous.png │ │ │ │ │ ├── findbarButton-previous@2x.png │ │ │ │ │ ├── grab.cur │ │ │ │ │ ├── grabbing.cur │ │ │ │ │ ├── loading-icon.gif │ │ │ │ │ ├── loading-small.png │ │ │ │ │ ├── loading-small@2x.png │ │ │ │ │ ├── secondaryToolbarButton-documentProperties.png │ │ │ │ │ ├── secondaryToolbarButton-documentProperties@2x.png │ │ │ │ │ ├── secondaryToolbarButton-firstPage.png │ │ │ │ │ ├── secondaryToolbarButton-firstPage@2x.png │ │ │ │ │ ├── secondaryToolbarButton-handTool.png │ │ │ │ │ ├── secondaryToolbarButton-handTool@2x.png │ │ │ │ │ ├── secondaryToolbarButton-lastPage.png │ │ │ │ │ ├── secondaryToolbarButton-lastPage@2x.png │ │ │ │ │ ├── secondaryToolbarButton-rotateCcw.png │ │ │ │ │ ├── secondaryToolbarButton-rotateCcw@2x.png │ │ │ │ │ ├── secondaryToolbarButton-rotateCw.png │ │ │ │ │ ├── secondaryToolbarButton-rotateCw@2x.png │ │ │ │ │ ├── secondaryToolbarButton-scrollHorizontal.png │ │ │ │ │ ├── secondaryToolbarButton-scrollHorizontal@2x.png │ │ │ │ │ ├── secondaryToolbarButton-scrollVertical.png │ │ │ │ │ ├── secondaryToolbarButton-scrollVertical@2x.png │ │ │ │ │ ├── secondaryToolbarButton-scrollWrapped.png │ │ │ │ │ ├── secondaryToolbarButton-scrollWrapped@2x.png │ │ │ │ │ ├── secondaryToolbarButton-selectTool.png │ │ │ │ │ ├── secondaryToolbarButton-selectTool@2x.png │ │ │ │ │ ├── secondaryToolbarButton-spreadEven.png │ │ │ │ │ ├── secondaryToolbarButton-spreadEven@2x.png │ │ │ │ │ ├── secondaryToolbarButton-spreadNone.png │ │ │ │ │ ├── secondaryToolbarButton-spreadNone@2x.png │ │ │ │ │ ├── secondaryToolbarButton-spreadOdd.png │ │ │ │ │ ├── secondaryToolbarButton-spreadOdd@2x.png │ │ │ │ │ ├── shadow.png │ │ │ │ │ ├── texture.png │ │ │ │ │ ├── toolbarButton-bookmark.png │ │ │ │ │ ├── toolbarButton-bookmark@2x.png │ │ │ │ │ ├── toolbarButton-download.png │ │ │ │ │ ├── toolbarButton-download@2x.png │ │ │ │ │ ├── toolbarButton-menuArrows.png │ │ │ │ │ ├── toolbarButton-menuArrows@2x.png │ │ │ │ │ ├── toolbarButton-openFile.png │ │ │ │ │ ├── toolbarButton-openFile@2x.png │ │ │ │ │ ├── toolbarButton-pageDown-rtl.png │ │ │ │ │ ├── toolbarButton-pageDown-rtl@2x.png │ │ │ │ │ ├── toolbarButton-pageDown.png │ │ │ │ │ ├── toolbarButton-pageDown@2x.png │ │ │ │ │ ├── toolbarButton-pageUp-rtl.png │ │ │ │ │ ├── toolbarButton-pageUp-rtl@2x.png │ │ │ │ │ ├── toolbarButton-pageUp.png │ │ │ │ │ ├── toolbarButton-pageUp@2x.png │ │ │ │ │ ├── toolbarButton-presentationMode.png │ │ │ │ │ ├── toolbarButton-presentationMode@2x.png │ │ │ │ │ ├── toolbarButton-print.png │ │ │ │ │ ├── toolbarButton-print@2x.png │ │ │ │ │ ├── toolbarButton-search.png │ │ │ │ │ ├── toolbarButton-search@2x.png │ │ │ │ │ ├── toolbarButton-secondaryToolbarToggle-rtl.png │ │ │ │ │ ├── toolbarButton-secondaryToolbarToggle-rtl@2x.png │ │ │ │ │ ├── toolbarButton-secondaryToolbarToggle.png │ │ │ │ │ ├── toolbarButton-secondaryToolbarToggle@2x.png │ │ │ │ │ ├── toolbarButton-sidebarToggle-rtl.png │ │ │ │ │ ├── toolbarButton-sidebarToggle-rtl@2x.png │ │ │ │ │ ├── toolbarButton-sidebarToggle.png │ │ │ │ │ ├── toolbarButton-sidebarToggle@2x.png │ │ │ │ │ ├── toolbarButton-viewAttachments.png │ │ │ │ │ ├── toolbarButton-viewAttachments@2x.png │ │ │ │ │ ├── toolbarButton-viewOutline-rtl.png │ │ │ │ │ ├── toolbarButton-viewOutline-rtl@2x.png │ │ │ │ │ ├── toolbarButton-viewOutline.png │ │ │ │ │ ├── toolbarButton-viewOutline@2x.png │ │ │ │ │ ├── toolbarButton-viewThumbnail.png │ │ │ │ │ ├── toolbarButton-viewThumbnail@2x.png │ │ │ │ │ ├── toolbarButton-zoomIn.png │ │ │ │ │ ├── toolbarButton-zoomIn@2x.png │ │ │ │ │ ├── toolbarButton-zoomOut.png │ │ │ │ │ ├── toolbarButton-zoomOut@2x.png │ │ │ │ │ ├── treeitem-collapsed-rtl.png │ │ │ │ │ ├── treeitem-collapsed-rtl@2x.png │ │ │ │ │ ├── treeitem-collapsed.png │ │ │ │ │ ├── treeitem-collapsed@2x.png │ │ │ │ │ ├── treeitem-expanded.png │ │ │ │ │ └── treeitem-expanded@2x.png │ │ │ │ │ ├── javaapp.js │ │ │ │ │ ├── locale │ │ │ │ │ ├── ach │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── af │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ak │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── an │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ar │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── as │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ast │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── az │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── be │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── bg │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── bn-BD │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── bn-IN │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── br │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── brx │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── bs │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ca │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── cak │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── crh │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── cs │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── csb │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── cy │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── da │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── de │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── el │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── en-CA │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── en-GB │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── en-US │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── en-ZA │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── eo │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── es-AR │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── es-CL │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── es-ES │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── es-MX │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── et │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── eu │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── fa │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ff │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── fi │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── fr │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── fy-NL │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ga-IE │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── gd │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── gl │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── gn │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── gu-IN │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── he │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── hi-IN │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── hr │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── hsb │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── hto │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── hu │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── hy-AM │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ia │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── id │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── is │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── it │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ja │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ka │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── kab │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── kk │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── km │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── kn │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ko │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── kok │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ks │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ku │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── lg │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── lij │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── lo │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── locale.properties │ │ │ │ │ ├── lt │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ltg │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── lv │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── mai │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── meh │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── mk │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ml │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── mn │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── mr │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ms │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── my │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── nb-NO │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ne-NP │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── nl │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── nn-NO │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── nso │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── oc │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── or │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── pa-IN │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── pl │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── pt-BR │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── pt-PT │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── rm │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ro │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ru │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── rw │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── sah │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── sat │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── si │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── sk │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── sl │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── son │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── sq │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── sr │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── sv-SE │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── sw │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ta-LK │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ta │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── te │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── th │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── tl │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── tn │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── tr │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── tsz │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── uk │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── ur │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── uz │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── vi │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── wo │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── xh │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── zam │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── zh-CN │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── zh-TW │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ └── zu │ │ │ │ │ │ └── viewer.properties │ │ │ │ │ ├── viewer.css │ │ │ │ │ ├── viewer.html │ │ │ │ │ ├── viewer.js │ │ │ │ │ └── viewer.js.map │ │ │ └── properties.xml │ │ │ ├── settings │ │ │ ├── ArgumentNaming.fxml │ │ │ ├── EditWebButton.fxml │ │ │ ├── EditWebButtonsDlg.fxml │ │ │ ├── ExclWorkTypesDlg.fxml │ │ │ ├── FolderSettings.fxml │ │ │ ├── LaunchCommandsDlg.fxml │ │ │ ├── SettingsDlg.fxml │ │ │ ├── WebButtonSettings.fxml │ │ │ ├── WorkFileNamingSettings.fxml │ │ │ ├── WorkSearchKey.fxml │ │ │ └── WorkSearchKeys.fxml │ │ │ ├── tree │ │ │ ├── ChangeParentDlg.fxml │ │ │ ├── ChooseParentDlg.fxml │ │ │ ├── DragConceptDlg.fxml │ │ │ ├── Tree.fxml │ │ │ └── TreeTab.fxml │ │ │ └── view │ │ │ ├── Main.fxml │ │ │ ├── mainText │ │ │ ├── MainTextEditor.fxml │ │ │ └── SymbolPickerDlg.fxml │ │ │ └── tabs │ │ │ ├── ArgumentLowerPane.fxml │ │ │ ├── FileTab.fxml │ │ │ ├── InstTab.fxml │ │ │ ├── NodeTab.fxml │ │ │ ├── PersonTab.fxml │ │ │ └── WorkTab.fxml │ │ └── simplelogger.properties └── test │ └── java │ └── org │ └── hypernomicon │ ├── BibliographicDateTest.java │ ├── BidiOneToManyMapTest.java │ ├── BidiOneToManyRecordMapTest.java │ ├── DeleteTest.java │ ├── DocIdentifiersTest.java │ ├── EnumBasedTableTest.java │ ├── MendeleyMetadataTest.java │ ├── MentionsAndDisplayIndexTest.java │ ├── NewDBTest.java │ ├── ObjListIteratorTest.java │ ├── PageRangeTest.java │ ├── RISTest.java │ ├── SubjListIteratorTest.java │ ├── TitleCaseTest.java │ ├── UnitiesTest.java │ ├── UtilsTest.java │ ├── VersionNumberTest.java │ ├── ZoteroDateTest.java │ └── ZoteroMetadataTest.java └── versions-rules.xml /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*.{java,fxml,html,css}] 4 | indent_size = 2 5 | indent_style = space 6 | trim_trailing_whitespace = true -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .DS_Store 3 | .settings 4 | sh.exe.stackdump 5 | .classpath 6 | .project 7 | .idea 8 | target 9 | bin 10 | pom2*.xml 11 | *.bak 12 | *.log 13 | *.patch 14 | *.iml 15 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/bib/BibEntity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.bib; 19 | 20 | import org.hypernomicon.util.json.JsonArray; 21 | import org.hypernomicon.util.json.JsonObj; 22 | 23 | //--------------------------------------------------------------------------- 24 | 25 | public interface BibEntity 26 | { 27 | 28 | //--------------------------------------------------------------------------- 29 | //--------------------------------------------------------------------------- 30 | 31 | boolean isSynced(); 32 | void update(JsonObj jObj, boolean updatingExistingDataFromServer, boolean preMerge); 33 | String getKey(); 34 | void saveToJsonArray(JsonArray jArr); 35 | 36 | //--------------------------------------------------------------------------- 37 | //--------------------------------------------------------------------------- 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/bib/BibEntryRow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.bib; 19 | 20 | import org.hypernomicon.model.records.HDT_Work; 21 | import org.hypernomicon.view.wrappers.AbstractRow; 22 | 23 | //--------------------------------------------------------------------------- 24 | 25 | public class BibEntryRow extends AbstractRow 26 | { 27 | 28 | //--------------------------------------------------------------------------- 29 | //--------------------------------------------------------------------------- 30 | 31 | private final BibEntry entry; 32 | 33 | public BibEntryRow(BibEntry entry) { this.entry = entry; } 34 | public BibEntry getEntry() { return entry; } 35 | public HDT_Work getWork() { return entry.getWork(); } 36 | public String getURLtoViewEntryInRefMgr() { return entry.getURLtoViewEntryInRefMgr(); } 37 | 38 | @SuppressWarnings("unchecked") 39 | @Override public HDT_T getRecord() { return (HDT_T) getWork(); } 40 | 41 | //--------------------------------------------------------------------------- 42 | //--------------------------------------------------------------------------- 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/bib/mendeley/MendeleyEntity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.bib.mendeley; 19 | 20 | import java.time.Instant; 21 | 22 | import org.hypernomicon.bib.BibEntity; 23 | 24 | //--------------------------------------------------------------------------- 25 | 26 | interface MendeleyEntity extends BibEntity 27 | { 28 | 29 | //--------------------------------------------------------------------------- 30 | //--------------------------------------------------------------------------- 31 | 32 | /** 33 | * The instant that the Mendeley server says it was last modified 34 | * @return The instant that the Mendeley server says it was last modified 35 | */ 36 | Instant lastModifiedOnServer(); 37 | 38 | String Document_Last_Modified_JSON_Key = "last_modified", 39 | Folder_Last_Modified_JSON_Key = "modified"; 40 | 41 | //--------------------------------------------------------------------------- 42 | //--------------------------------------------------------------------------- 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/bib/zotero/ZoteroEntity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.bib.zotero; 19 | 20 | import org.hypernomicon.bib.BibEntity; 21 | 22 | //--------------------------------------------------------------------------- 23 | 24 | interface ZoteroEntity extends BibEntity 25 | { 26 | 27 | //--------------------------------------------------------------------------- 28 | //--------------------------------------------------------------------------- 29 | 30 | long getVersion(); 31 | 32 | //--------------------------------------------------------------------------- 33 | //--------------------------------------------------------------------------- 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/fileManager/AbstractEntityWithPath.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.fileManager; 19 | 20 | import org.hypernomicon.model.items.HyperPath; 21 | import org.hypernomicon.util.filePath.FilePath; 22 | 23 | import static org.hypernomicon.util.Util.*; 24 | 25 | //--------------------------------------------------------------------------- 26 | 27 | abstract class AbstractEntityWithPath 28 | { 29 | 30 | //--------------------------------------------------------------------------- 31 | //--------------------------------------------------------------------------- 32 | 33 | private boolean related, relatedSet = false; 34 | 35 | //--------------------------------------------------------------------------- 36 | 37 | public abstract FilePath getFilePath(); 38 | public abstract boolean isDirectory(); 39 | public abstract HyperPath getHyperPath(); 40 | 41 | //--------------------------------------------------------------------------- 42 | //--------------------------------------------------------------------------- 43 | 44 | public boolean isRelated() 45 | { 46 | if (relatedSet == false) 47 | { 48 | related = nullSwitch(getHyperPath(), false, hyperPath -> strNotNullOrEmpty(hyperPath.getRecordsString())); 49 | 50 | relatedSet = true; 51 | } 52 | 53 | return related; 54 | } 55 | 56 | //--------------------------------------------------------------------------- 57 | //--------------------------------------------------------------------------- 58 | 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/fileManager/EntityWithRow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.fileManager; 19 | 20 | import org.hypernomicon.model.items.HyperPath; 21 | import org.hypernomicon.util.filePath.FilePath; 22 | 23 | //--------------------------------------------------------------------------- 24 | 25 | public class EntityWithRow extends AbstractEntityWithPath 26 | { 27 | 28 | //--------------------------------------------------------------------------- 29 | //--------------------------------------------------------------------------- 30 | 31 | private final FileRow row; 32 | 33 | //--------------------------------------------------------------------------- 34 | 35 | public EntityWithRow(FileRow row) { this.row = row; } 36 | 37 | //--------------------------------------------------------------------------- 38 | 39 | @Override public FilePath getFilePath () { return row.getFilePath (); } 40 | @Override public HyperPath getHyperPath() { return row.getHyperPath(); } 41 | @Override public boolean isDirectory () { return row.isDirectory (); } 42 | 43 | //--------------------------------------------------------------------------- 44 | //--------------------------------------------------------------------------- 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/fileManager/FolderHistoryItem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.fileManager; 19 | 20 | import org.hypernomicon.model.records.*; 21 | import org.hypernomicon.util.filePath.FilePath; 22 | 23 | //--------------------------------------------------------------------------- 24 | 25 | final class FolderHistoryItem 26 | { 27 | 28 | //--------------------------------------------------------------------------- 29 | //--------------------------------------------------------------------------- 30 | 31 | final HDT_Folder folder; 32 | final FilePath fileName; 33 | final HDT_Record record; 34 | 35 | //--------------------------------------------------------------------------- 36 | 37 | FolderHistoryItem(FileRow folderRow, FileRow fileRow, HDT_Record record) 38 | { 39 | folder = folderRow.getRecord(); 40 | fileName = fileRow == null ? null : fileRow.getFilePath().getNameOnly(); 41 | this.record = record; 42 | } 43 | 44 | //--------------------------------------------------------------------------- 45 | //--------------------------------------------------------------------------- 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/model/DatasetAccessor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.model; 19 | 20 | import java.util.Collection; 21 | import java.util.Iterator; 22 | import java.util.Random; 23 | 24 | import org.hypernomicon.model.records.HDT_Record; 25 | 26 | //--------------------------------------------------------------------------- 27 | 28 | public interface DatasetAccessor extends Collection 29 | { 30 | 31 | //--------------------------------------------------------------------------- 32 | //--------------------------------------------------------------------------- 33 | 34 | String getKeyByID(int id); 35 | int getKeyNdxByID(int id); 36 | int getIDNdxByID(int id); 37 | int getRandomUsedID(Random random); 38 | HDT_DT getByID(int id); 39 | HDT_DT getByKeyNdx(int ndx); 40 | void setKey(int id, String newKey); 41 | Iterable keyIterable(); 42 | Iterator keyIterator(); 43 | 44 | //--------------------------------------------------------------------------- 45 | //--------------------------------------------------------------------------- 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/model/HDX_BibDateElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.model; 19 | 20 | import static org.hypernomicon.model.Tag.*; 21 | 22 | import java.util.Iterator; 23 | 24 | import javax.xml.stream.events.Attribute; 25 | 26 | import org.hypernomicon.model.Exceptions.InvalidAttributeException; 27 | import org.hypernomicon.model.items.BibliographicDate; 28 | import org.hypernomicon.model.records.RecordState; 29 | 30 | //--------------------------------------------------------------------------- 31 | 32 | public class HDX_BibDateElement extends HDX_Element 33 | { 34 | 35 | //--------------------------------------------------------------------------- 36 | //--------------------------------------------------------------------------- 37 | 38 | private final BibliographicDate bibDate; 39 | 40 | public BibliographicDate getBibDate() { return bibDate; } 41 | 42 | //--------------------------------------------------------------------------- 43 | 44 | HDX_BibDateElement(Iterator attributesIt, RecordState xmlRecord) throws InvalidAttributeException 45 | { 46 | super(tagBibDate); 47 | 48 | bibDate = BibliographicDate.fromXmlAttribs(attributesIt, xmlRecord); 49 | } 50 | 51 | //--------------------------------------------------------------------------- 52 | //--------------------------------------------------------------------------- 53 | 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/model/items/HDI_Base.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.model.items; 19 | 20 | import org.hypernomicon.model.HDI_Schema; 21 | import org.hypernomicon.model.HDI_Schema.HyperDataCategory; 22 | import org.hypernomicon.model.records.RecordType; 23 | 24 | //--------------------------------------------------------------------------- 25 | 26 | public class HDI_Base 27 | { 28 | 29 | //--------------------------------------------------------------------------- 30 | //--------------------------------------------------------------------------- 31 | 32 | private final HDI_Schema schema; 33 | 34 | //--------------------------------------------------------------------------- 35 | 36 | HDI_Base(HDI_Schema schema) 37 | { 38 | this.schema = schema; 39 | } 40 | 41 | //--------------------------------------------------------------------------- 42 | 43 | public HyperDataCategory category() { return schema.category(); } 44 | public HDI_Schema getSchema() { return schema; } 45 | 46 | RecordType nestedTargetType() { return schema.nestedTargetType(); } 47 | 48 | //--------------------------------------------------------------------------- 49 | //--------------------------------------------------------------------------- 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/model/items/NameItem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.model.items; 19 | 20 | import static org.hypernomicon.util.Util.*; 21 | 22 | //--------------------------------------------------------------------------- 23 | // 24 | // All HDT_RecordBase objects hold a reference to an object of this kind 25 | // 26 | //--------------------------------------------------------------------------- 27 | 28 | public class NameItem 29 | { 30 | 31 | //--------------------------------------------------------------------------- 32 | //--------------------------------------------------------------------------- 33 | 34 | private String name = "", nameEngChar = ""; 35 | 36 | //--------------------------------------------------------------------------- 37 | 38 | public String get() { return name; } 39 | public String getEngChar() { return nameEngChar; } 40 | 41 | //--------------------------------------------------------------------------- 42 | //--------------------------------------------------------------------------- 43 | 44 | public void set(String newName) 45 | { 46 | name = safeStr(newName); 47 | nameEngChar = convertToEnglishChars(name.strip()); 48 | } 49 | 50 | //--------------------------------------------------------------------------- 51 | //--------------------------------------------------------------------------- 52 | 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/model/records/HDT_Investigation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.model.records; 19 | 20 | import static org.hypernomicon.model.relations.RelationSet.RelationType.*; 21 | 22 | import org.hypernomicon.model.DatasetAccessor; 23 | import org.hypernomicon.model.relations.HyperObjPointer; 24 | import org.hypernomicon.model.unities.HDT_RecordWithMainText; 25 | 26 | //--------------------------------------------------------------------------- 27 | 28 | public class HDT_Investigation extends HDT_RecordWithMainText 29 | { 30 | 31 | //--------------------------------------------------------------------------- 32 | //--------------------------------------------------------------------------- 33 | 34 | public final HyperObjPointer person; 35 | 36 | //--------------------------------------------------------------------------- 37 | 38 | public HDT_Investigation(RecordState xmlState, DatasetAccessor dataset) 39 | { 40 | super(xmlState, dataset); 41 | 42 | person = getObjPointer(rtPersonOfInv); 43 | } 44 | 45 | //--------------------------------------------------------------------------- 46 | 47 | @Override public String listName() { return name(); } 48 | 49 | //--------------------------------------------------------------------------- 50 | //--------------------------------------------------------------------------- 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/model/records/HDT_PersonGroup.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.model.records; 19 | 20 | import static org.hypernomicon.model.relations.RelationSet.RelationType.*; 21 | 22 | import java.util.List; 23 | 24 | import org.hypernomicon.model.DatasetAccessor; 25 | 26 | //--------------------------------------------------------------------------- 27 | 28 | public class HDT_PersonGroup extends HDT_RecordBase 29 | { 30 | 31 | //--------------------------------------------------------------------------- 32 | //--------------------------------------------------------------------------- 33 | 34 | public final List parentGroups, subGroups; 35 | 36 | //--------------------------------------------------------------------------- 37 | 38 | public HDT_PersonGroup(RecordState xmlState, DatasetAccessor dataset) 39 | { 40 | super(xmlState, dataset); 41 | 42 | parentGroups = getObjList(rtParentGroupOfGroup); 43 | subGroups = getSubjList(rtParentGroupOfGroup); 44 | } 45 | 46 | //--------------------------------------------------------------------------- 47 | 48 | @Override public String listName() { return name(); } 49 | 50 | //--------------------------------------------------------------------------- 51 | //--------------------------------------------------------------------------- 52 | 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/model/records/HDT_RecordWithAuthors.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.model.records; 19 | 20 | import org.hypernomicon.model.items.Authors; 21 | 22 | //--------------------------------------------------------------------------- 23 | 24 | public interface HDT_RecordWithAuthors extends HDT_Record 25 | { 26 | 27 | //--------------------------------------------------------------------------- 28 | //--------------------------------------------------------------------------- 29 | 30 | AuthorsType getAuthors(); 31 | 32 | /** 33 | *

Sets the search key to a generated string instead of using one of the record's active search keys.

34 | *

Tries to create a search key based on information from the work record; if unable to do that, 35 | * makes one that includes information from the parent work.

36 | *

For a non-work record, just sets it to the record name.

37 | */ 38 | String makeKeyWorkSearchKey(); 39 | 40 | //--------------------------------------------------------------------------- 41 | //--------------------------------------------------------------------------- 42 | 43 | default String getShortAuthorsStr(boolean fnis) { return Authors.getShortAuthorsStr(getAuthors().stream(), false, fnis, true); } 44 | default String getLongAuthorsStr (boolean fnis) { return Authors.getLongAuthorsStr (getAuthors().stream(), fnis, true); } 45 | 46 | //--------------------------------------------------------------------------- 47 | //--------------------------------------------------------------------------- 48 | 49 | } 50 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/model/records/HDT_RecordWithPath.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.model.records; 19 | 20 | import static org.hypernomicon.util.Util.*; 21 | 22 | import org.hypernomicon.model.items.HyperPath; 23 | import org.hypernomicon.util.filePath.FilePath; 24 | 25 | //--------------------------------------------------------------------------- 26 | 27 | public interface HDT_RecordWithPath extends HDT_Record 28 | { 29 | 30 | //--------------------------------------------------------------------------- 31 | //--------------------------------------------------------------------------- 32 | 33 | HyperPath getPath(); 34 | 35 | //--------------------------------------------------------------------------- 36 | 37 | default boolean pathNotEmpty() { return nullSwitch(getPath(), false, HyperPath::isNotEmpty); } 38 | default FilePath filePath() { return nullSwitch(getPath(), null , HyperPath::filePath); } 39 | default HDT_Folder parentFolder() { return nullSwitch(getPath(), null , HyperPath::parentFolder); } 40 | 41 | //--------------------------------------------------------------------------- 42 | //--------------------------------------------------------------------------- 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/model/records/HDT_Subfield.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.model.records; 19 | 20 | import static org.hypernomicon.model.relations.RelationSet.RelationType.*; 21 | 22 | import java.util.List; 23 | 24 | import org.hypernomicon.model.DatasetAccessor; 25 | import org.hypernomicon.model.records.SimpleRecordTypes.HDT_Field; 26 | import org.hypernomicon.model.relations.HyperObjPointer; 27 | 28 | //--------------------------------------------------------------------------- 29 | 30 | public class HDT_Subfield extends HDT_RecordBase 31 | { 32 | 33 | //--------------------------------------------------------------------------- 34 | //--------------------------------------------------------------------------- 35 | 36 | public final List persons; 37 | 38 | public final HyperObjPointer field; 39 | 40 | //--------------------------------------------------------------------------- 41 | 42 | public HDT_Subfield(RecordState xmlState, DatasetAccessor dataset) 43 | { 44 | super(xmlState, dataset); 45 | 46 | persons = getSubjList(rtSubfieldOfPerson); 47 | field = getObjPointer(rtFieldOfSubfield); 48 | } 49 | 50 | //--------------------------------------------------------------------------- 51 | 52 | @Override public String listName() { return name(); } 53 | 54 | //--------------------------------------------------------------------------- 55 | //--------------------------------------------------------------------------- 56 | 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/query/sources/AllQuerySource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.query.sources; 19 | 20 | import static org.hypernomicon.model.records.RecordType.*; 21 | 22 | import java.util.EnumSet; 23 | 24 | import org.hypernomicon.model.records.RecordType; 25 | 26 | //--------------------------------------------------------------------------- 27 | 28 | public class AllQuerySource extends CombinedUnfilteredQuerySource 29 | { 30 | 31 | //--------------------------------------------------------------------------- 32 | //--------------------------------------------------------------------------- 33 | 34 | public AllQuerySource() { super(types()); } 35 | 36 | //--------------------------------------------------------------------------- 37 | 38 | @Override public QuerySourceType sourceType() { return QuerySourceType.QST_allRecords; } 39 | 40 | //--------------------------------------------------------------------------- 41 | //--------------------------------------------------------------------------- 42 | 43 | private static EnumSet types() 44 | { 45 | EnumSet types = EnumSet.allOf(RecordType.class); 46 | types.removeAll(EnumSet.of(hdtNone, hdtAuxiliary, hdtHub)); 47 | return types; 48 | } 49 | 50 | //--------------------------------------------------------------------------- 51 | //--------------------------------------------------------------------------- 52 | 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/query/sources/DatasetQuerySource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.query.sources; 19 | 20 | import java.util.EnumSet; 21 | 22 | import org.hypernomicon.model.records.RecordType; 23 | 24 | //--------------------------------------------------------------------------- 25 | 26 | public class DatasetQuerySource extends CombinedUnfilteredQuerySource 27 | { 28 | 29 | //--------------------------------------------------------------------------- 30 | //--------------------------------------------------------------------------- 31 | 32 | private final RecordType type; 33 | 34 | //--------------------------------------------------------------------------- 35 | 36 | public DatasetQuerySource(RecordType type) 37 | { 38 | super(EnumSet.of(type)); 39 | this.type = type; 40 | } 41 | 42 | //--------------------------------------------------------------------------- 43 | 44 | @Override public RecordType recordType() { return type; } 45 | @Override public QuerySourceType sourceType() { return QuerySourceType.QST_recordsByType; } 46 | 47 | //--------------------------------------------------------------------------- 48 | //--------------------------------------------------------------------------- 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/query/ui/AbstractColumnGroup.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.query.ui; 19 | 20 | import org.hypernomicon.query.ui.SelectColumnsDlgCtrlr.TypeCheckBox; 21 | 22 | import com.google.common.collect.ForwardingCollection; 23 | 24 | //--------------------------------------------------------------------------- 25 | 26 | /** 27 | *

A column group is a collection of result columns that can be made visible or invisible all 28 | * at once using the column display options popup window. 29 | *
30 | *

A column group has one or more column group items; there is one column group item to a 31 | * check box in the column display options popup window. Each ResultColumn is associated with 32 | * one or more column group items. It is associated with more than one column group item when 33 | * multiple record types have items with the same tag. 34 | * 35 | */ 36 | abstract class AbstractColumnGroup extends ForwardingCollection 37 | { 38 | final ResultsTable resultsTable; 39 | final String caption; 40 | 41 | TypeCheckBox checkBox; 42 | 43 | //--------------------------------------------------------------------------- 44 | //--------------------------------------------------------------------------- 45 | 46 | AbstractColumnGroup(String caption, ResultsTable resultsTable) 47 | { 48 | this.caption = caption; 49 | this.resultsTable = resultsTable; 50 | } 51 | 52 | //--------------------------------------------------------------------------- 53 | //--------------------------------------------------------------------------- 54 | 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/tree/AbstractTreeRow.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.tree; 19 | 20 | import org.hypernomicon.model.records.HDT_Record; 21 | import org.hypernomicon.view.wrappers.AbstractRow; 22 | 23 | import javafx.scene.control.TreeItem; 24 | import javafx.scene.image.ImageView; 25 | 26 | //--------------------------------------------------------------------------- 27 | 28 | public abstract class AbstractTreeRow> 29 | extends AbstractRow 30 | implements Comparable 31 | { 32 | 33 | //--------------------------------------------------------------------------- 34 | //--------------------------------------------------------------------------- 35 | 36 | protected TreeItem treeItem = null; 37 | protected ImageView graphic = null; 38 | private final TreeModel treeModel; 39 | 40 | //--------------------------------------------------------------------------- 41 | 42 | protected AbstractTreeRow(TreeModel treeModel) { this.treeModel = treeModel; } 43 | 44 | //--------------------------------------------------------------------------- 45 | 46 | final AbstractTreeWrapper getTreeWrapper() { return treeModel.getTreeWrapper(); } 47 | @Override public final TreeItem getTreeItem() { return treeItem; } 48 | 49 | //--------------------------------------------------------------------------- 50 | //--------------------------------------------------------------------------- 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/tree/TreeCtrlr.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.tree; 19 | 20 | import javafx.fxml.FXML; 21 | import javafx.scene.control.TreeTableColumn; 22 | import javafx.scene.control.TreeTableView; 23 | 24 | //--------------------------------------------------------------------------- 25 | 26 | public class TreeCtrlr 27 | { 28 | 29 | //--------------------------------------------------------------------------- 30 | //--------------------------------------------------------------------------- 31 | 32 | @FXML TreeTableView ttv; 33 | @FXML TreeTableColumn tcName; 34 | @FXML TreeTableColumn tcLinked; 35 | @FXML TreeTableColumn tcDesc; 36 | 37 | //--------------------------------------------------------------------------- 38 | //--------------------------------------------------------------------------- 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/view/controls/HiddenSidesPane.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.view.controls; 19 | 20 | import javafx.geometry.Side; 21 | 22 | //--------------------------------------------------------------------------- 23 | 24 | /** 25 | * Custom version of the ControlsFX HiddenSidesPane class that exposes 26 | * the hide and show methods 27 | * 28 | * @author Jason Winning 29 | * @since 1.0 30 | */ 31 | public class HiddenSidesPane extends org.controlsfx.control.HiddenSidesPane 32 | { 33 | 34 | //--------------------------------------------------------------------------- 35 | //--------------------------------------------------------------------------- 36 | 37 | public HiddenSidesPane() { setSkin(new HiddenSidesPaneSkin(this)); } 38 | 39 | @Override public void hide() { ((HiddenSidesPaneSkin) getSkin()).hide(); } 40 | public void show(Side side, boolean noInterrupt) { ((HiddenSidesPaneSkin) getSkin()).show(side, noInterrupt); } 41 | 42 | //--------------------------------------------------------------------------- 43 | //--------------------------------------------------------------------------- 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/view/tabs/ArgumentLowerPaneCtrlr.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.view.tabs; 19 | 20 | import org.hypernomicon.view.wrappers.HyperTableRow; 21 | 22 | import javafx.fxml.FXML; 23 | import javafx.scene.control.*; 24 | 25 | //--------------------------------------------------------------------------- 26 | 27 | public class ArgumentLowerPaneCtrlr 28 | { 29 | 30 | //--------------------------------------------------------------------------- 31 | //--------------------------------------------------------------------------- 32 | 33 | @FXML TableView tvWhereMade, tvResponses; 34 | @FXML TabPane tabPane; 35 | @FXML Tab tabWhereMade, tabResponses; 36 | 37 | //--------------------------------------------------------------------------- 38 | //--------------------------------------------------------------------------- 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/org/hypernomicon/view/wrappers/CommitableWrapper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015-2025 Jason Winning 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | package org.hypernomicon.view.wrappers; 19 | 20 | import javafx.scene.Node; 21 | import javafx.scene.control.ComboBox; 22 | 23 | import static org.hypernomicon.util.Util.*; 24 | import static org.hypernomicon.util.UIUtil.*; 25 | 26 | //--------------------------------------------------------------------------- 27 | 28 | @FunctionalInterface public interface CommitableWrapper 29 | { 30 | 31 | //--------------------------------------------------------------------------- 32 | //--------------------------------------------------------------------------- 33 | 34 | void commit(); 35 | 36 | //--------------------------------------------------------------------------- 37 | //--------------------------------------------------------------------------- 38 | 39 | static void commitWrapper(Node node) 40 | { 41 | if (node == null) return; 42 | 43 | if (node instanceof CommitableWrapper commitableWrapper) 44 | { 45 | commitableWrapper.commit(); 46 | return; 47 | } 48 | 49 | if (node instanceof ComboBox) 50 | { 51 | HyperCB hcb = (HyperCB) getNodeUserObj(node, NodeUserDataType.HypercCB); 52 | 53 | if ((hcb != null) && hcb.autoCommitBeforeRecordSave) 54 | { 55 | hcb.commit(); 56 | return; 57 | } 58 | } 59 | 60 | nullSwitch(node.getParent(), CommitableWrapper::commitWrapper); 61 | } 62 | 63 | //--------------------------------------------------------------------------- 64 | //--------------------------------------------------------------------------- 65 | 66 | } 67 | -------------------------------------------------------------------------------- /src/main/resources/META-INF/teamdev.licenses: -------------------------------------------------------------------------------- 1 | Product: JxBrowser 2 | Version: 6.x 3 | Licensed to: 4 | License type: Development 5 | License info: Open Source Project 6 | Product binding: the specific project 7 | Product binding info: 6ts43l5etmnrh6uuswoj0e977iarals 8 | Expiration date: NEVER 9 | Support expiration date: NO SUPPORT 10 | Generation date: 15-05-2019 11 | Platforms: win32/x86;mac/x86;linux/x64;linux/x86;mac/x64;mac/ppc;win32/x64 12 | Company name: Hypernomicon 13 | SigB: kh6545118d35fck3f68hqc02bxo2z8k86xrkzme6lgmi7h49au7ky6dqss0ltlna6c333ch7eqc0jmrw 14 | SigA: zdvradqg4f5qxvk7ug0exg9eiwzbsjomx6ygfki0h79vc5i453suq6phlrhnq6g5vyb1kk1ttmxc9o8w 15 | -------------------------------------------------------------------------------- /src/main/resources/org/hypernomicon/dialogs/HelpDlg.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |