Added a context menu to the message list and ability to copy a message
context menu contains a few menu items that will be populated with functionality later on.
This commit is contained in:
		| @@ -1,5 +1,7 @@ | ||||
| package envoy.client.ui.controller; | ||||
|  | ||||
| import java.awt.Toolkit; | ||||
| import java.awt.datatransfer.StringSelection; | ||||
| import java.io.IOException; | ||||
| import java.util.logging.Level; | ||||
| import java.util.logging.Logger; | ||||
| @@ -310,4 +312,22 @@ public final class ChatScene { | ||||
| 	 * @since Envoy Client v0.1-beta | ||||
| 	 */ | ||||
| 	private void scrollToMessageListEnd() { messageList.scrollTo(messageList.getItems().size() - 1); } | ||||
|  | ||||
| 	// =========== contextMenu actions ========== // | ||||
|  | ||||
| 	@FXML | ||||
| 	private void copyMessage() { | ||||
| 		Toolkit.getDefaultToolkit() | ||||
| 			.getSystemClipboard() | ||||
| 			.setContents(new StringSelection(messageList.getSelectionModel().getSelectedItem().getText()), null); | ||||
| 	} | ||||
|  | ||||
| 	@FXML | ||||
| 	private void deleteMessage() {} | ||||
|  | ||||
| 	@FXML | ||||
| 	private void forwardMessage() {} | ||||
|  | ||||
| 	@FXML | ||||
| 	private void quoteMessage() {} | ||||
| } | ||||
|   | ||||
| @@ -1,5 +1,15 @@ | ||||
| .button, .list-cell { | ||||
| 	-fx-background-radius: 5em; | ||||
| 	-fx-background-radius: 5.0em; | ||||
| } | ||||
|  | ||||
| .context-menu, .context-menu > * { | ||||
| 	-fx-background-radius: 15px; | ||||
| 	/*TODO: solution below does not work */ | ||||
| 	-fx-background-color: transparent; | ||||
| } | ||||
|  | ||||
| .menu-item { | ||||
| 	-fx-background-radius: 15.0px; | ||||
| } | ||||
|  | ||||
| .button:hover { | ||||
| @@ -34,12 +44,12 @@ | ||||
|  | ||||
| .received-message { | ||||
| 	-fx-alignment: center-left; | ||||
| 	-fx-background-radius: 4em; | ||||
| 	-fx-background-radius: 4.0em; | ||||
| 	-fx-text-alignment: right; | ||||
| } | ||||
|  | ||||
| .own-message { | ||||
| 	-fx-alignment: center-right; | ||||
| 	-fx-background-radius: 4em; | ||||
| 	-fx-background-radius: 4.0em; | ||||
| 	-fx-text-alignment: left; | ||||
| } | ||||
|   | ||||
| @@ -18,11 +18,11 @@ | ||||
| 	-fx-background-color: lightgray; | ||||
| } | ||||
|  | ||||
| .list-view, .list-cell, .text-area .content, .text-field, .password-field, .tooltip, .pane, .pane .content, .vbox, .titled-pane > .title, .titled-pane > *.content { | ||||
| .list-view, .list-cell, .text-area .content, .text-field, .password-field, .tooltip, .pane, .pane .content, .vbox, .titled-pane > .title, .titled-pane > *.content, .context-menu, .menu-item { | ||||
| 	-fx-background-color: dimgray; | ||||
| } | ||||
|  | ||||
| .list-cell:selected, .list-cell:selected > * { | ||||
| .list-cell:selected, .list-cell:selected > *, .menu-item:hover { | ||||
|     -fx-background-color: darkviolet; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -11,6 +11,6 @@ | ||||
| 	-fx-background-color: lightgreen; | ||||
| } | ||||
|  | ||||
| .own-message { | ||||
| .own-message , .menu-item { | ||||
| 	-fx-background-color: lightgray; | ||||
| } | ||||
|   | ||||
| @@ -2,8 +2,10 @@ | ||||
|  | ||||
| <?import javafx.geometry.Insets?> | ||||
| <?import javafx.scene.control.Button?> | ||||
| <?import javafx.scene.control.ContextMenu?> | ||||
| <?import javafx.scene.control.Label?> | ||||
| <?import javafx.scene.control.ListView?> | ||||
| <?import javafx.scene.control.MenuItem?> | ||||
| <?import javafx.scene.control.TextArea?> | ||||
| <?import javafx.scene.control.Tooltip?> | ||||
| <?import javafx.scene.layout.ColumnConstraints?> | ||||
| @@ -50,7 +52,17 @@ | ||||
|          </GridPane.margin> | ||||
|          <padding> | ||||
|             <Insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> | ||||
|          </padding></ListView> | ||||
|          </padding> | ||||
|          <contextMenu> | ||||
|             <ContextMenu anchorLocation="CONTENT_TOP_LEFT"> | ||||
|               <items> | ||||
|                 <MenuItem mnemonicParsing="false" text="Copy" onAction="#copyMessage"/> | ||||
|                 <MenuItem mnemonicParsing="false" text="Delete" onAction="#deleteMessage"/> | ||||
|                 <MenuItem mnemonicParsing="false" text="Forward" onAction="#forwardMessage"/> | ||||
|                 <MenuItem mnemonicParsing="false" text="Quote" onAction="#quoteMessage"/>                                 | ||||
|               </items> | ||||
|             </ContextMenu> | ||||
|          </contextMenu></ListView> | ||||
| 		<Button fx:id="postButton" defaultButton="true" disable="true" mnemonicParsing="true" onAction="#postMessage" prefHeight="10.0" prefWidth="65.0" text="_Post" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.rowIndex="3" GridPane.valignment="CENTER"> | ||||
|          <GridPane.margin> | ||||
|             <Insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 delvh
					delvh