Compare commits

..

No commits in common. "1b5c32c3207f68372f817aa26a3a664a43b4bcd4" and "c427af15b656f2286720f3358a189ebad94e2fe8" have entirely different histories.

11 changed files with 103 additions and 132 deletions

View File

@ -24,7 +24,7 @@ class DictionaryEntryCellFactory(private val resources: ResourceBundle, private
} }
companion object { companion object {
private const val CELL_PADDING = 24 private const val CELL_PADDING = 16
} }
} }

View File

@ -26,7 +26,6 @@ class SentenceCellFactory(private val config: Config) : Callback<ListView<Senten
private class SentenceCell(private val config: Config) : ListCell<SentenceFx?>() { private class SentenceCell(private val config: Config) : ListCell<SentenceFx?>() {
private val labelSentence = Label().apply { private val labelSentence = Label().apply {
styleClass.add("sentence") styleClass.add("sentence")
isWrapText = true
} }
private val root = VBox(labelSentence) private val root = VBox(labelSentence)

View File

@ -6,23 +6,25 @@
<?import javafx.scene.web.WebView?> <?import javafx.scene.web.WebView?>
<VBox stylesheets="/css/details.css" xmlns="http://javafx.com/javafx/23" xmlns:fx="http://javafx.com/fxml/1" <VBox stylesheets="/css/details.css" xmlns="http://javafx.com/javafx/23" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="com.marvinelsen.willow.ui.controllers.DetailsController"> fx:controller="com.marvinelsen.willow.ui.controllers.DetailsController">
<FlowPane fx:id="flowPaneHeader" hgap="8.0" vgap="8.0" rowValignment="BASELINE" VBox.vgrow="NEVER" <FlowPane fx:id="flowPaneHeader" hgap="8.0" onContextMenuRequested="#headerOnContextMenuRequested" prefHeight="38.0"
onContextMenuRequested="#headerOnContextMenuRequested"> prefWidth="412.0" rowValignment="BASELINE" styleClass="flow-pane-header" vgap="8.0" VBox.vgrow="NEVER">
<padding> <padding>
<Insets bottom="6.0" left="6.0" right="6.0" top="6.0"/> <Insets bottom="6.0" left="6.0" right="6.0" top="6.0"/>
</padding> </padding>
<Label fx:id="labelHeadword" styleClass="headword"/> <Label fx:id="labelHeadword" styleClass="headword" text="Label"/>
<Label fx:id="labelPronunciation" styleClass="pronunciation"/> <Label fx:id="labelPronunciation" styleClass="pronunciation">
</Label>
</FlowPane> </FlowPane>
<TabPane fx:id="tabPaneDetails" tabClosingPolicy="UNAVAILABLE" VBox.vgrow="ALWAYS"> <TabPane fx:id="tabPaneDetails" tabClosingPolicy="UNAVAILABLE" VBox.vgrow="ALWAYS">
<Tab closable="false" text="%details.tab.definition"> <Tab closable="false" text="%tab.definition">
<WebView fx:id="webViewDefinition"/> <WebView fx:id="webViewDefinition" minHeight="-1.0" minWidth="-1.0" prefHeight="-1.0" prefWidth="-1.0"/>
</Tab> </Tab>
<Tab id="tabSentences" closable="false" text="%details.tab.sentences"> <Tab id="tabSentences" closable="false" text="%tab.sentences">
<StackPane> <StackPane>
<ProgressIndicator fx:id="progressIndicatorSentences" visible="false"/> <ProgressIndicator fx:id="progressIndicatorSentences" visible="false"/>
<Label fx:id="labelNoSentencesFound" text="%details.list.no_sentences_found" textAlignment="CENTER" <Label fx:id="labelNoSentencesFound" text="%list.no_sentences_found" textAlignment="CENTER"
visible="false" wrapText="true"> visible="false"
wrapText="true">
<padding> <padding>
<Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/> <Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/>
</padding> </padding>
@ -30,16 +32,17 @@
<ListView fx:id="listViewSentences"/> <ListView fx:id="listViewSentences"/>
</StackPane> </StackPane>
</Tab> </Tab>
<Tab id="tabWords" closable="false" text="%details.tab.words"> <Tab id="tabWords" closable="false" text="%tab.words">
<VBox maxHeight="1.7976931348623157E308"> <VBox maxHeight="1.7976931348623157E308">
<TitledPane animated="false" maxHeight="-Infinity" text="%details.list.words_beginning" VBox.vgrow="ALWAYS"> <TitledPane animated="false" maxHeight="-Infinity" text="%list.words_beginning" VBox.vgrow="ALWAYS">
<StackPane> <StackPane>
<padding> <padding>
<Insets bottom="0.0" left="0.0" right="0.0" top="0.0"/> <Insets bottom="0.0" left="0.0" right="0.0" top="0.0"/>
</padding> </padding>
<ProgressIndicator fx:id="progressIndicatorWordsBeginning" visible="false"/> <ProgressIndicator fx:id="progressIndicatorWordsBeginning" visible="false"/>
<Label fx:id="labelNoWordsBeginningFound" text="%details.list.no_words_found" textAlignment="CENTER" <Label fx:id="labelNoWordsBeginningFound" text="%list.no_words_found" textAlignment="CENTER"
visible="false" wrapText="true"> visible="false"
wrapText="true">
<padding> <padding>
<Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/> <Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/>
</padding> </padding>
@ -47,14 +50,15 @@
<ListView fx:id="listViewWordsBeginning" prefHeight="4000"/> <ListView fx:id="listViewWordsBeginning" prefHeight="4000"/>
</StackPane> </StackPane>
</TitledPane> </TitledPane>
<TitledPane animated="false" maxHeight="-Infinity" text="%details.list.words_containing" VBox.vgrow="ALWAYS"> <TitledPane animated="false" maxHeight="-Infinity" text="%list.words_containing" VBox.vgrow="ALWAYS">
<StackPane> <StackPane>
<padding> <padding>
<Insets bottom="0.0" left="0.0" right="0.0" top="0.0"/> <Insets bottom="0.0" left="0.0" right="0.0" top="0.0"/>
</padding> </padding>
<ProgressIndicator fx:id="progressIndicatorWordsContaining" visible="false"/> <ProgressIndicator fx:id="progressIndicatorWordsContaining" visible="false"/>
<Label fx:id="labelNoWordsContainingFound" text="%details.list.no_words_found" textAlignment="CENTER" <Label fx:id="labelNoWordsContainingFound" text="%list.no_words_found" textAlignment="CENTER"
visible="false" wrapText="true"> visible="false"
wrapText="true">
<padding> <padding>
<Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/> <Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/>
</padding> </padding>
@ -64,10 +68,10 @@
</TitledPane> </TitledPane>
</VBox> </VBox>
</Tab> </Tab>
<Tab fx:id="tabCharacters" id="tabCharacters" closable="false" text="%details.tab.characters"> <Tab fx:id="tabCharacters" id="tabCharacters" closable="false" text="%tab.characters">
<StackPane> <StackPane>
<ListView fx:id="listViewCharacters"/> <ListView fx:id="listViewCharacters"/>
<Label fx:id="labelNoCharactersFound" text="%details.list.no_characters_found" textAlignment="CENTER" <Label fx:id="labelNoCharactersFound" text="%list.no_characters_found" textAlignment="CENTER"
visible="false" wrapText="true"> visible="false" wrapText="true">
<padding> <padding>
<Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/> <Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/>

View File

@ -15,7 +15,7 @@
<Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/> <Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/>
</BorderPane.margin> </BorderPane.margin>
<fx:include source="/fxml/search.fxml"/> <fx:include source="/fxml/search.fxml"/>
<SplitPane dividerPositions="0.33" VBox.vgrow="ALWAYS"> <SplitPane styleClass="split-pane" dividerPositions="0.33" VBox.vgrow="ALWAYS">
<fx:include source="/fxml/search-results.fxml"/> <fx:include source="/fxml/search-results.fxml"/>
<fx:include source="/fxml/details.fxml"/> <fx:include source="/fxml/details.fxml"/>
</SplitPane> </SplitPane>

View File

@ -5,12 +5,12 @@
<?import javafx.scene.control.ListView?> <?import javafx.scene.control.ListView?>
<?import javafx.scene.control.ProgressIndicator?> <?import javafx.scene.control.ProgressIndicator?>
<?import javafx.scene.layout.StackPane?> <?import javafx.scene.layout.StackPane?>
<StackPane minWidth="100" xmlns="http://javafx.com/javafx/23" xmlns:fx="http://javafx.com/fxml/1" <StackPane xmlns="http://javafx.com/javafx/23" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="com.marvinelsen.willow.ui.controllers.SearchResultsController" fx:controller="com.marvinelsen.willow.ui.controllers.SearchResultsController"
stylesheets="/css/search-results.css"> stylesheets="/css/search-results.css">
<ListView fx:id="listViewSearchResults" disable="true"/> <ListView fx:id="listViewSearchResults" disable="true" minWidth="150.0"/>
<Label fx:id="labelNoEntriesFound" text="%search.results.list.no_entries_found" textAlignment="CENTER" visible="false" <Label fx:id="labelNoEntriesFound" text="%list.no_entries_found" textAlignment="CENTER"
wrapText="true"> visible="false" wrapText="true">
<padding> <padding>
<Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/> <Insets bottom="8.0" left="8.0" right="8.0" top="8.0"/>
</padding> </padding>

View File

@ -18,17 +18,20 @@
<SearchMode fx:value="SIMPLIFIED"/> <SearchMode fx:value="SIMPLIFIED"/>
</userData> </userData>
</RadioButton> </RadioButton>
<RadioButton mnemonicParsing="false" text="%search.mode.traditional" toggleGroup="$searchModeToggleGroup"> <RadioButton mnemonicParsing="false" text="%search.mode.traditional"
toggleGroup="$searchModeToggleGroup">
<userData> <userData>
<SearchMode fx:value="TRADITIONAL"/> <SearchMode fx:value="TRADITIONAL"/>
</userData> </userData>
</RadioButton> </RadioButton>
<RadioButton mnemonicParsing="false" text="%search.mode.pinyin" toggleGroup="$searchModeToggleGroup"> <RadioButton mnemonicParsing="false" text="%search.mode.pinyin"
toggleGroup="$searchModeToggleGroup">
<userData> <userData>
<SearchMode fx:value="PINYIN"/> <SearchMode fx:value="PINYIN"/>
</userData> </userData>
</RadioButton> </RadioButton>
<RadioButton mnemonicParsing="false" text="%search.mode.phrase" toggleGroup="$searchModeToggleGroup"> <RadioButton mnemonicParsing="false" text="%search.mode.phrase"
toggleGroup="$searchModeToggleGroup">
<userData> <userData>
<SearchMode fx:value="SEGMENTS"/> <SearchMode fx:value="SEGMENTS"/>
</userData> </userData>

View File

@ -1,24 +1,13 @@
# Search
search.prompt=Search dictionary… search.prompt=Search dictionary…
search.mode=Search mode: search.mode=Searching:
search.mode.pinyin=Pinyin search.mode.pinyin=Pinyin
search.mode.traditional=Traditional search.mode.traditional=Traditional Chinese
search.mode.simplified=Simplified search.mode.simplified=Simplified Chinese
search.mode.phrase=Phrase search.mode.english=English
tab.definition=Definition
# Details tab.sentences=Sentences
details.tab.definition=Definition tab.words=Words
details.tab.sentences=Sentences tab.characters=Characters
details.tab.words=Words
details.tab.characters=Characters
details.list.no_characters_found=No characters found
details.list.no_words_found=No words found
details.list.no_sentences_found=No sentences found.
details.list.words_beginning=Words beginning
details.list.words_containing=Words containing
# Menubar
menubar.file=_File menubar.file=_File
menubar.file.quit=_Quit menubar.file.quit=_Quit
menubar.file.preferences=_Preferences… menubar.file.preferences=_Preferences…
@ -27,6 +16,10 @@ menubar.edit.copy.headword=Copy Headword
menubar.edit.copy.pronunciation=Copy Pronunciation menubar.edit.copy.pronunciation=Copy Pronunciation
menubar.help=_Help menubar.help=_Help
menubar.help.about=_About… menubar.help.about=_About…
list.no_entries_found=No matching entries found
# Search results search.mode.phrase=Phrase
search.results.list.no_entries_found=No matching entries found list.no_characters_found=No characters found
list.no_words_found=No words found
list.no_sentences_found=No sentences found.
list.words_beginning=Words beginning
list.words_containing=Words containing

View File

@ -1,24 +1,13 @@
# Search
search.prompt=Durchsuche Wörterbuch… search.prompt=Durchsuche Wörterbuch…
search.mode=Suchmodus: search.mode=Suche:
search.mode.pinyin=Pinyin search.mode.pinyin=Pinyin
search.mode.traditional=Langzeichen search.mode.traditional=Langzeichen
search.mode.simplified=Kurzzeichen search.mode.simplified=Kurzzeichen
search.mode.phrase=Satz search.mode.english=Englisch
tab.definition=Definition
# Details tab.sentences=Sätze
details.tab.definition=Definition tab.words=Wörter
details.tab.sentences=Sätze tab.characters=Schriftzeichen
details.tab.words=Wörter
details.tab.characters=Schriftzeichen
details.list.no_characters_found=Keine Schriftzeichen gefunden
details.list.no_words_found=Keine Wörter gefunden
details.list.no_sentences_found=Keine Sätze gefunden
details.list.words_beginning=Am Wortanfang
details.list.words_containing=Im Wort
# Menubar
menubar.file=_Datei menubar.file=_Datei
menubar.file.quit=_Beenden menubar.file.quit=_Beenden
menubar.file.preferences=_Einstellungen… menubar.file.preferences=_Einstellungen…
@ -27,6 +16,10 @@ menubar.edit.copy.headword=Kopiere Wort
menubar.edit.copy.pronunciation=Kopiere Aussprache menubar.edit.copy.pronunciation=Kopiere Aussprache
menubar.help=_Hilfe menubar.help=_Hilfe
menubar.help.about=_Über… menubar.help.about=_Über…
list.no_entries_found=No matching entries found
# Search results search.mode.phrase=Phrase
search.results.list.no_entries_found=Keine passenden Einträge gefunden list.no_characters_found=No characters found
list.no_words_found=No words found
list.no_sentences_found=No sentences found.
list.words_beginning=Words beginning
list.words_containing=Words containing

View File

@ -1,24 +1,13 @@
# Search
search.prompt=Search dictionary… search.prompt=Search dictionary…
search.mode=Search mode: search.mode=Searching:
search.mode.pinyin=Pinyin search.mode.pinyin=Pinyin
search.mode.traditional=Traditional search.mode.traditional=Traditional Chinese
search.mode.simplified=Simplified search.mode.simplified=Simplified Chinese
search.mode.phrase=Phrase search.mode.english=English
tab.definition=Definition
# Details tab.sentences=Sentences
details.tab.definition=Definition tab.words=Words
details.tab.sentences=Sentences tab.characters=Characters
details.tab.words=Words
details.tab.characters=Characters
details.list.no_characters_found=No characters found
details.list.no_words_found=No words found
details.list.no_sentences_found=No sentences found.
details.list.words_beginning=Words beginning
details.list.words_containing=Words containing
# Menubar
menubar.file=_File menubar.file=_File
menubar.file.quit=_Quit menubar.file.quit=_Quit
menubar.file.preferences=_Preferences… menubar.file.preferences=_Preferences…
@ -27,6 +16,10 @@ menubar.edit.copy.headword=Copy Headword
menubar.edit.copy.pronunciation=Copy Pronunciation menubar.edit.copy.pronunciation=Copy Pronunciation
menubar.help=_Help menubar.help=_Help
menubar.help.about=_About… menubar.help.about=_About…
list.no_entries_found=No matching entries found
# Search results search.mode.phrase=Phrase
search.results.list.no_entries_found=No matching entries found list.no_characters_found=No characters found
list.no_words_found=No words found
list.no_sentences_found=No sentences found.
list.words_beginning=Words beginning
list.words_containing=Words containing

View File

@ -1,24 +1,13 @@
#Search
search.prompt=搜尋… search.prompt=搜尋…
search.mode=搜尋模式: search.mode=搜尋:
search.mode.pinyin=漢語拼音 search.mode.pinyin=漢語拼音
search.mode.traditional=繁體字 search.mode.traditional=繁體字
search.mode.simplified=簡體字 search.mode.simplified=簡體字
search.mode.phrase=句子 search.mode.english=英文
tab.definition=Definition
# Details tab.sentences=例句
details.tab.definition=釋義 tab.words=
details.tab.sentences=例句 tab.characters=
details.tab.words=
details.tab.characters=
details.list.no_characters_found=No characters found
details.list.no_words_found=No words found
details.list.no_sentences_found=No sentences found.
details.list.words_beginning=Words beginning
details.list.words_containing=Words containing
# Menubar
menubar.file=_檔案 menubar.file=_檔案
menubar.file.quit=_結束 Willow menubar.file.quit=_結束 Willow
menubar.file.preferences=_設定… menubar.file.preferences=_設定…
@ -27,6 +16,10 @@ menubar.edit.copy.headword=複製 Wort
menubar.edit.copy.pronunciation=複製 Aussprache menubar.edit.copy.pronunciation=複製 Aussprache
menubar.help=_說明 menubar.help=_說明
menubar.help.about=_關於 Willow… menubar.help.about=_關於 Willow…
list.no_entries_found=No matching entries found
# Search results search.mode.phrase=Phrase
search.results.list.no_entries_found=No matching entries found list.no_characters_found=No characters found
list.no_words_found=No words found
list.no_sentences_found=No sentences found.
list.words_beginning=Words beginning
list.words_containing=Words containing

View File

@ -1,24 +1,13 @@
# Search
search.prompt=搜尋… search.prompt=搜尋…
search.mode=搜尋模式: search.mode=搜尋:
search.mode.pinyin=漢語拼音 search.mode.pinyin=漢語拼音
search.mode.traditional=繁體字 search.mode.traditional=繁體字
search.mode.simplified=簡體字 search.mode.simplified=簡體字
search.mode.phrase=句子 search.mode.english=英文
tab.definition=Definition
# Details tab.sentences=例句
details.tab.definition=釋義 tab.words=
details.tab.sentences=例句 tab.characters=
details.tab.words=
details.tab.characters=
details.list.no_characters_found=No characters found
details.list.no_words_found=No words found
details.list.no_sentences_found=No sentences found
details.list.words_beginning=Words beginning
details.list.words_containing=Words containing
# Menubar
menubar.file=_檔案 menubar.file=_檔案
menubar.file.quit=_結束 Willow menubar.file.quit=_結束 Willow
menubar.file.preferences=_設定… menubar.file.preferences=_設定…
@ -27,6 +16,10 @@ menubar.edit.copy.headword=複製 Wort
menubar.edit.copy.pronunciation=複製 Aussprache menubar.edit.copy.pronunciation=複製 Aussprache
menubar.help=_說明 menubar.help=_說明
menubar.help.about=_關於 Willow… menubar.help.about=_關於 Willow…
list.no_entries_found=No matching entries found
# Search results search.mode.phrase=Phrase
search.results.list.no_entries_found=No matching entries found list.no_characters_found=No characters found
list.no_words_found=No words found
list.no_sentences_found=No sentences found.
list.words_beginning=Words beginning
list.words_containing=Words containing