From bf13c5ff4045ed476eb0c0cb23a581238d96c6ae Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Wed, 16 Aug 2017 10:29:59 +0800 Subject: [PATCH] ComponentList for settings view --- .gitignore | 3 + .../kotlin/org/jackhuang/hmcl/ui/FXUtils.kt | 27 ++- .../kotlin/org/jackhuang/hmcl/ui/MainPage.kt | 4 + .../main/kotlin/org/jackhuang/hmcl/ui/SVG.kt | 8 + .../org/jackhuang/hmcl/ui/SettingsPage.kt | 3 + .../hmcl/ui/VersionSettingsController.kt | 24 ++- .../hmcl/ui/construct/ComponentList.kt | 72 ++++++++ .../hmcl/ui/construct/ComponentListCell.kt | 143 ++++++++++++++++ .../assets/css/jfoenix-main-demo.css | 48 ++++++ .../main/resources/assets/fxml/setting.fxml | 32 ++-- .../assets/fxml/version-settings.fxml | 156 ++++++++++-------- .../resources/assets/svg/paper-plane.fxml | 2 + lib/JFoenix.jar | Bin 980933 -> 986359 bytes 13 files changed, 417 insertions(+), 105 deletions(-) create mode 100644 HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/construct/ComponentList.kt create mode 100644 HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/construct/ComponentListCell.kt create mode 100644 HMCL/src/main/resources/assets/svg/paper-plane.fxml diff --git a/.gitignore b/.gitignore index ed6fc4071..529f413ad 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,9 @@ hs_err_pid* .gradle .idea +*.lck +*.1 +*.2 *.log .mine* NVIDIA diff --git a/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/FXUtils.kt b/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/FXUtils.kt index acd841fc3..cfc8df77b 100644 --- a/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/FXUtils.kt +++ b/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/FXUtils.kt @@ -18,11 +18,9 @@ package org.jackhuang.hmcl.ui import com.jfoenix.concurrency.JFXUtilities -import com.jfoenix.controls.JFXCheckBox -import com.jfoenix.controls.JFXComboBox -import com.jfoenix.controls.JFXScrollPane -import com.jfoenix.controls.JFXTextField +import com.jfoenix.controls.* import javafx.animation.Animation +import javafx.animation.Interpolator import javafx.animation.KeyFrame import javafx.animation.Timeline import javafx.beans.property.Property @@ -144,6 +142,11 @@ fun bindString(textField: JFXTextField, property: Property) { textField.textProperty().bindBidirectional(property) } +fun bindBoolean(toggleButton: JFXToggleButton, property: Property) { + toggleButton.selectedProperty().unbind() + toggleButton.selectedProperty().bindBidirectional(property) +} + fun bindBoolean(checkBox: JFXCheckBox, property: Property) { checkBox.selectedProperty().unbind() checkBox.selectedProperty().bindBidirectional(property) @@ -163,4 +166,20 @@ fun unbindEnum(comboBox: JFXComboBox<*>) { @Suppress("UNCHECKED_CAST") val listener = comboBox.properties["listener"] as? ChangeListener ?: return comboBox.selectionModel.selectedIndexProperty().removeListener(listener) +} + + +/** + * Built-in interpolator that provides discrete time interpolation. The + * return value of `interpolate()` is `endValue` only when the + * input `fraction` is 1.0, and `startValue` otherwise. + */ +val SINE: Interpolator = object : Interpolator() { + override fun curve(t: Double): Double { + return Math.sin(t * Math.PI / 2) + } + + override fun toString(): String { + return "Interpolator.DISCRETE" + } } \ No newline at end of file diff --git a/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/MainPage.kt b/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/MainPage.kt index ddfc2c807..c5fb7f47c 100644 --- a/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/MainPage.kt +++ b/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/MainPage.kt @@ -54,6 +54,10 @@ class MainPage : StackPane(), DecoratorPage { init { loadFXML("/assets/fxml/main.fxml") + btnLaunch.graphic = SVG.launch("white", 15.0, 15.0) + btnLaunch.limitWidth(40.0) + btnLaunch.limitHeight(40.0) + EVENT_BUS.channel() += this::loadVersions EVENT_BUS.channel() += this::onProfilesLoading EVENT_BUS.channel() += this::onProfileChanged diff --git a/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/SVG.kt b/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/SVG.kt index ae22d4c69..00ff04a2e 100644 --- a/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/SVG.kt +++ b/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/SVG.kt @@ -56,4 +56,12 @@ object SVG { fun dotsVertical(fill: String = "white", width: Double = 20.0, height: Double = 20.0): Node = createSVGPath("M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z", fill, width, height) fun delete(fill: String = "white", width: Double = 20.0, height: Double = 20.0): Node = createSVGPath("M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z", fill, width, height) fun accountEdit(fill: String = "white", width: Double = 20.0, height: Double = 20.0) = createSVGPath("M21.7,13.35L20.7,14.35L18.65,12.3L19.65,11.3C19.86,11.09 20.21,11.09 20.42,11.3L21.7,12.58C21.91,12.79 21.91,13.14 21.7,13.35M12,18.94L18.06,12.88L20.11,14.93L14.06,21H12V18.94M12,14C7.58,14 4,15.79 4,18V20H10V18.11L14,14.11C13.34,14.03 12.67,14 12,14M12,4A4,4 0 0,0 8,8A4,4 0 0,0 12,12A4,4 0 0,0 16,8A4,4 0 0,0 12,4Z", fill, width, height) + fun expand(fill: String = "white", width: Double = 20.0, height: Double = 20.0) = createSVGPath("M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z", fill, width, height) + fun collapse(fill: String = "white", width: Double = 20.0, height: Double = 20.0) = createSVGPath("M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z", fill, width, height) + fun navigate(fill: String = "white", width: Double = 20.0, height: Double = 20.0) = createSVGPath("M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z", fill, width, height) + fun launch(fill: String = "white", width: Double = 20.0, height: Double = 20.0) = createSVGPath("M1008 6.286q18.857 13.714 15.429 36.571l-146.286 877.714q-2.857 16.571-18.286 25.714-8 4.571-17.714 4.571-6.286 " + + "0-13.714-2.857l-258.857-105.714-138.286 168.571q-10.286 13.143-28 13.143-7.429 " + + "0-12.571-2.286-10.857-4-17.429-13.429t-6.571-20.857v-199.429l493.714-605.143-610.857 " + + "528.571-225.714-92.571q-21.143-8-22.857-31.429-1.143-22.857 18.286-33.714l950.857-548.571q8.571-5.143 18.286-5.143" + + " 11.429 0 20.571 6.286z", fill, width, height) } \ No newline at end of file diff --git a/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/SettingsPage.kt b/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/SettingsPage.kt index e80c1444d..643d51ba1 100644 --- a/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/SettingsPage.kt +++ b/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/SettingsPage.kt @@ -47,6 +47,9 @@ class SettingsPage : StackPane(), DecoratorPage { init { loadFXML("/assets/fxml/setting.fxml") + cboLanguage.limitWidth(400.0) + cboDownloadSource.limitWidth(400.0) + txtProxyHost.text = Settings.PROXY_HOST txtProxyHost.textProperty().addListener { _, _, newValue -> Settings.PROXY_HOST = newValue diff --git a/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/VersionSettingsController.kt b/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/VersionSettingsController.kt index 2d70cced0..ce01a6383 100644 --- a/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/VersionSettingsController.kt +++ b/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/VersionSettingsController.kt @@ -17,9 +17,7 @@ */ package org.jackhuang.hmcl.ui -import com.jfoenix.controls.JFXCheckBox -import com.jfoenix.controls.JFXComboBox -import com.jfoenix.controls.JFXTextField +import com.jfoenix.controls.* import javafx.beans.InvalidationListener import javafx.fxml.FXML import javafx.scene.control.Label @@ -29,6 +27,7 @@ import javafx.scene.layout.VBox import javafx.stage.DirectoryChooser import org.jackhuang.hmcl.i18n import org.jackhuang.hmcl.setting.VersionSetting +import org.jackhuang.hmcl.ui.construct.ComponentList import org.jackhuang.hmcl.util.OS class VersionSettingsController { @@ -46,20 +45,31 @@ class VersionSettingsController { @FXML lateinit var txtPrecallingCommand: JFXTextField @FXML lateinit var txtServerIP: JFXTextField @FXML lateinit var txtGameDir: JFXTextField - @FXML lateinit var advancedSettingsPane: VBox + @FXML lateinit var advancedSettingsPane: ComponentList @FXML lateinit var cboLauncherVisibility: JFXComboBox<*> @FXML lateinit var cboRunDirectory: JFXComboBox<*> @FXML lateinit var chkFullscreen: JFXCheckBox @FXML lateinit var lblPhysicalMemory: Label - @FXML lateinit var chkNoJVMArgs: JFXCheckBox - @FXML lateinit var chkNoCommon: JFXCheckBox - @FXML lateinit var chkNoGameCheck: JFXCheckBox + @FXML lateinit var chkNoJVMArgs: JFXToggleButton + @FXML lateinit var chkNoCommon: JFXToggleButton + @FXML lateinit var chkNoGameCheck: JFXToggleButton fun initialize() { lblPhysicalMemory.text = i18n("settings.physical_memory") + ": ${OS.TOTAL_MEMORY}MB" scroll.smoothScrolling() + val limit = 300.0 + txtGameDir.limitWidth(limit) + txtMaxMemory.limitWidth(limit) + cboLauncherVisibility.limitWidth(limit) + cboRunDirectory.limitWidth(limit) + + val limitHeight = 10.0 + chkNoJVMArgs.limitHeight(limitHeight) + chkNoCommon.limitHeight(limitHeight) + chkNoGameCheck.limitHeight(limitHeight) + fun validation(field: JFXTextField) = InvalidationListener { field.validate() } fun validator(nullable: Boolean = false) = NumberValidator(nullable).apply { message = "Must be a number." } diff --git a/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/construct/ComponentList.kt b/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/construct/ComponentList.kt new file mode 100644 index 000000000..cadeabb64 --- /dev/null +++ b/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/construct/ComponentList.kt @@ -0,0 +1,72 @@ +/* + * Hello Minecraft! Launcher. + * Copyright (C) 2017 huangyuhui + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see {http://www.gnu.org/licenses/}. + */ +package org.jackhuang.hmcl.ui.construct + +import javafx.beans.DefaultProperty +import javafx.beans.property.SimpleIntegerProperty +import javafx.beans.property.SimpleObjectProperty +import javafx.collections.FXCollections +import javafx.collections.ListChangeListener +import javafx.collections.ObservableList +import javafx.scene.Node +import javafx.scene.layout.StackPane +import javafx.scene.layout.VBox +import org.jackhuang.hmcl.util.* + +@DefaultProperty("content") +class ComponentList: StackPane() { + + val vbox: VBox + + val content: ObservableList = FXCollections.observableArrayList().apply { + addListener { change: ListChangeListener.Change -> + while (change.next()) { + for (i in change.from until change.to) { + addChildren(change.list[i]) + } + } + } + } + + init { + vbox = VBox().apply { + } + children.setAll(vbox) + + styleClass += "options-list" + } + + fun addChildren(node: Node) { + if (node is ComponentList) + node.properties["title"] = node.title + vbox.children += StackPane().apply { + children += ComponentListCell(this@ComponentList, node) + if (vbox.children.isEmpty()) + styleClass += "options-list-item-ahead" + else { + styleClass += "options-list-item" + } + } + } + + val titleProperty = SimpleObjectProperty(this, "title", "Group") + var title: String by titleProperty + + val depthProperty = SimpleIntegerProperty(this, "depth", 0) + var depth: Int by depthProperty +} \ No newline at end of file diff --git a/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/construct/ComponentListCell.kt b/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/construct/ComponentListCell.kt new file mode 100644 index 000000000..571041dd8 --- /dev/null +++ b/HMCL/src/main/kotlin/org/jackhuang/hmcl/ui/construct/ComponentListCell.kt @@ -0,0 +1,143 @@ +/* + * Hello Minecraft! Launcher. + * Copyright (C) 2017 huangyuhui + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see {http://www.gnu.org/licenses/}. + */ +package org.jackhuang.hmcl.ui.construct + +import com.jfoenix.controls.JFXButton +import javafx.animation.* +import javafx.beans.property.SimpleBooleanProperty +import javafx.geometry.Insets +import javafx.geometry.Pos +import javafx.scene.Node +import javafx.scene.control.Label +import javafx.scene.layout.HBox +import javafx.scene.layout.Priority +import javafx.scene.layout.StackPane +import javafx.scene.layout.VBox +import javafx.scene.shape.Rectangle +import javafx.util.Duration +import org.jackhuang.hmcl.ui.SINE +import org.jackhuang.hmcl.ui.SVG +import org.jackhuang.hmcl.ui.limitHeight +import org.jackhuang.hmcl.util.* + +class ComponentListCell(private val superList: ComponentList, private val content: Node) : StackPane() { + + var expandAnimation: Animation? = null + private var clipRect: Rectangle? = null + private var animatedHeight = 0.0 + + private val expandedProperty = SimpleBooleanProperty(this, "expanded", false) + var expanded: Boolean by expandedProperty + + init { + updateLayout() + } + + private fun updateClip(newHeight: Double) { + clipRect?.height = newHeight + } + + override fun layoutChildren() { + super.layoutChildren() + + if (clipRect == null) { + clipRect = Rectangle(0.0, 0.0, width, height) + //clip = clipRect + } else { + clipRect?.x = 0.0 + clipRect?.y = 0.0 + clipRect?.height = height + clipRect?.width = width + } + } + + private fun updateLayout() { + val isSubList = content is ComponentList + + if (isSubList) { + content.styleClass -= "options-list" + content.styleClass += "options-sublist" + + val groupNode = StackPane() + groupNode.styleClass += "options-list-item-header" + + val expandIcon = SVG.expand("black", 10.0, 10.0) + val expandButton = JFXButton() + expandButton.graphic = expandIcon + expandButton.styleClass += "options-list-item-expand-button" + StackPane.setAlignment(expandButton, Pos.CENTER_RIGHT) + + groupNode.children.setAll( + Label(content.properties["title"]?.toString() ?: "Group").apply { isMouseTransparent = true; StackPane.setAlignment(this, Pos.CENTER_LEFT) }, + expandButton) + + val container = VBox().apply { + limitHeight(0.0) + children.setAll(content) + } + + val holder = VBox() + holder.children.setAll(groupNode, container) + holder.styleClass += "options-list-item-container" + + expandButton.setOnMouseClicked { + if (expandAnimation != null && expandAnimation!!.status == Animation.Status.RUNNING) { + expandAnimation!!.stop() + } + + expanded = !expanded + + val newAnimatedHeight = content.prefHeight(-1.0) * (if (expanded) 1.0 else -1.0) + val newHeight = if (expanded) height + newAnimatedHeight else prefHeight(-1.0) + val contentHeight = if (expanded) newAnimatedHeight else 0.0 + + if (expanded) { + updateClip(newHeight) + } + + animatedHeight = newAnimatedHeight + + expandAnimation = Timeline(KeyFrame(Duration(320.0), + KeyValue(container.minHeightProperty(), contentHeight, SINE), + KeyValue(container.maxHeightProperty(), contentHeight, SINE) + )) + + if (!expanded) { + expandAnimation?.setOnFinished { + updateClip(newHeight) + animatedHeight = 0.0 + } + } + + expandAnimation?.play() + } + + expandedProperty.addListener { _, _, newValue -> + if (newValue) { + expandIcon.rotate = 180.0 + } else { + expandIcon.rotate = 0.0 + } + } + + children.setAll(holder) + } else { + children.setAll(content) + } + } +} \ No newline at end of file diff --git a/HMCL/src/main/resources/assets/css/jfoenix-main-demo.css b/HMCL/src/main/resources/assets/css/jfoenix-main-demo.css index efc8bef3c..427f4f213 100644 --- a/HMCL/src/main/resources/assets/css/jfoenix-main-demo.css +++ b/HMCL/src/main/resources/assets/css/jfoenix-main-demo.css @@ -567,6 +567,54 @@ -fx-border-width: 1 0 1 0; } +.options-list { + -fx-background-color: transparent; + -fx-effect: dropshadow(gaussian, rgba(0, 0, 0, 0.26), 10, 0.12, -1, 2); +} + +.options-sublist { + -fx-background-color: white; +} + +.options-list-item { + -fx-background-color: white; + -fx-border-color: #e0e0e0; + -fx-border-width: 1 0 0 0; + -fx-padding: 10 16 10 16; + -fx-font-size: 12; +} + +.options-list-item-ahead { + -fx-background-radius: 2 2 0 0; + -fx-background-color: white; + -fx-padding: 10 16 10 16; + -fx-font-size: 12; +} + +.options-list-item-expand-button { + -fx-toggle-icon4-size: 15px; + -fx-pref-width: -fx-toggle-icon4-size; + -fx-max-width: -fx-toggle-icon4-size; + -fx-min-width: -fx-toggle-icon4-size; + -fx-pref-height: -fx-toggle-icon4-size; + -fx-max-height: -fx-toggle-icon4-size; + -fx-min-height: -fx-toggle-icon4-size; + -fx-background-radius: 50px; + -fx-background-color: transparent; + -jfx-toggle-color: rgba(128, 128, 255, 0.2); + -jfx-untoggle-color: transparent; +} + +.options-list-item-expand-button .icon { + -fx-fill: rgb(204.0, 204.0, 51.0); + -fx-padding: 10.0; +} + +.options-list-item-expand-button .jfx-rippler { + -jfx-rippler-fill: #0F9D58; + -jfx-mask-type: CIRCLE; +} + .custom-jfx-list-view .jfx-list-cell .sublist-header > .drop-icon { -fx-background-color: GRAY; } diff --git a/HMCL/src/main/resources/assets/fxml/setting.fxml b/HMCL/src/main/resources/assets/fxml/setting.fxml index ad6ac7ea2..a5b640c99 100644 --- a/HMCL/src/main/resources/assets/fxml/setting.fxml +++ b/HMCL/src/main/resources/assets/fxml/setting.fxml @@ -1,12 +1,12 @@ - + @@ -14,30 +14,19 @@ style="-fx-font-size: 14; -fx-pref-width: 100%; " fitToHeight="true" fitToWidth="true"> - - - - - - + + + diff --git a/HMCL/src/main/resources/assets/fxml/version-settings.fxml b/HMCL/src/main/resources/assets/fxml/version-settings.fxml index 96e044313..3ed03b92c 100644 --- a/HMCL/src/main/resources/assets/fxml/version-settings.fxml +++ b/HMCL/src/main/resources/assets/fxml/version-settings.fxml @@ -12,6 +12,9 @@ + + + @@ -19,90 +22,97 @@ style="-fx-font-size: 14; -fx-pref-width: 100%; " fitToHeight="true" fitToWidth="true"> - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - + + + + + + + + + diff --git a/HMCL/src/main/resources/assets/svg/paper-plane.fxml b/HMCL/src/main/resources/assets/svg/paper-plane.fxml new file mode 100644 index 000000000..ae3293a75 --- /dev/null +++ b/HMCL/src/main/resources/assets/svg/paper-plane.fxml @@ -0,0 +1,2 @@ + + diff --git a/lib/JFoenix.jar b/lib/JFoenix.jar index bb0b105a86fae35777d2669ec8e82e46b1b741f0..34464f5aab14437cbc7060ca9aa71d5be04d1dcf 100644 GIT binary patch delta 33194 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 z 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

uBbVL;kwIhGG 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 delta 28143 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 OK1GVM;Z@v!DgO^Jn