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