Added (currently useless) message-info menuItem

additionally:
 - moved MessageListCell and ContactListCell into
envoy.client.ui.listcell
 - edited editable property of ClearableTextField
This commit is contained in:
delvh 2020-06-30 21:20:54 +02:00
parent 2cccddc606
commit 2b1debbad7
9 changed files with 49 additions and 13 deletions

View File

@ -1,5 +1,6 @@
package envoy.client.ui;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.StringProperty;
import javafx.event.ActionEvent;
@ -156,4 +157,11 @@ public class ClearableTextField extends GridPane {
* @since Envoy Client v0.1-beta
*/
public final void setEditable(boolean value) { textField.setEditable(value); }
/**
* @return the current property whether this ClearableTextField is editable
* @see javafx.scene.control.TextInputControl#editableProperty()
* @since Envoy Client v0.1-beta
*/
public final BooleanProperty editableProperty() { return textField.editableProperty(); }
}

View File

@ -40,21 +40,21 @@ public final class SceneContext {
public enum SceneInfo {
/**
* The main scene in which chats are displayed.
* The main scene in which the chat screen is displayed.
*
* @since Envoy Client v0.1-beta
*/
CHAT_SCENE("/fxml/ChatScene.fxml"),
/**
* The scene in which settings are displayed.
* The scene in which the settings screen is displayed.
*
* @since Envoy Client v0.1-beta
*/
SETTINGS_SCENE("/fxml/SettingsScene.fxml"),
/**
* The scene in which the contact search is displayed.
* The scene in which the contact search screen is displayed.
*
* @since Envoy Client v0.1-beta
*/
@ -72,7 +72,14 @@ public final class SceneContext {
*
* @since Envoy Client v0.1-beta
*/
LOGIN_SCENE("/fxml/LoginScene.fxml");
LOGIN_SCENE("/fxml/LoginScene.fxml"),
/**
* The scene in which the info screen is displayed.
*
* @since Envoy Client v0.1-beta
*/
MESSAGE_INFO_SCENE("/fxml/MessageInfoScene.fxml");
/**
* The path to the FXML resource.

View File

@ -24,7 +24,10 @@ import envoy.client.data.Settings;
import envoy.client.event.MessageCreationEvent;
import envoy.client.net.Client;
import envoy.client.net.WriteProxy;
import envoy.client.ui.*;
import envoy.client.ui.IconUtil;
import envoy.client.ui.SceneContext;
import envoy.client.ui.listcell.ContactListCell;
import envoy.client.ui.listcell.MessageListCell;
import envoy.data.*;
import envoy.event.EventBus;
import envoy.event.MessageStatusChange;
@ -386,4 +389,7 @@ public final class ChatScene {
updateRemainingCharsLabel();
postButton.setDisable(messageText.isBlank());
}
@FXML
private void loadMessageInfoScene() { try {} catch (final NullPointerException e) {} }
}

View File

@ -13,8 +13,8 @@ import javafx.scene.control.ListView;
import envoy.client.data.LocalDB;
import envoy.client.event.SendEvent;
import envoy.client.ui.ClearableTextField;
import envoy.client.ui.ContactListCell;
import envoy.client.ui.SceneContext;
import envoy.client.ui.listcell.ContactListCell;
import envoy.data.Contact;
import envoy.event.ElementOperation;
import envoy.event.EventBus;

View File

@ -10,8 +10,8 @@ import javafx.scene.control.Alert.AlertType;
import envoy.client.data.LocalDB;
import envoy.client.event.SendEvent;
import envoy.client.ui.ClearableTextField;
import envoy.client.ui.ContactListCell;
import envoy.client.ui.SceneContext;
import envoy.client.ui.listcell.ContactListCell;
import envoy.data.Contact;
import envoy.event.EventBus;
import envoy.event.GroupCreation;

View File

@ -1,4 +1,4 @@
package envoy.client.ui;
package envoy.client.ui.listcell;
import javafx.scene.control.Label;
import javafx.scene.control.ListCell;
@ -52,7 +52,7 @@ public class ContactListCell extends ListCell<Contact> {
vbox.getChildren().add(statusLabel);
} else // Member count
vbox.getChildren().add(new Label(((Group) contact).getContacts().size() + " members"));
prefWidthProperty().bind(listView.widthProperty().subtract(40));
if (listView != null) prefWidthProperty().bind(listView.widthProperty().subtract(40));
setGraphic(vbox);
}
}

View File

@ -1,4 +1,4 @@
package envoy.client.ui;
package envoy.client.ui.listcell;
import java.time.format.DateTimeFormatter;
import java.util.Map;
@ -10,6 +10,7 @@ import javafx.scene.image.ImageView;
import javafx.scene.layout.VBox;
import javafx.stage.PopupWindow.AnchorLocation;
import envoy.client.ui.IconUtil;
import envoy.data.Message;
import envoy.data.Message.MessageStatus;
import envoy.data.User;
@ -64,7 +65,7 @@ public class MessageListCell extends ListCell<Message> {
} else cell.getStyleClass().add("received-message");
// Adjusting height and weight of the cell to the corresponding ListView
cell.paddingProperty().setValue(new Insets(5, 20, 5, 20));
cell.prefWidthProperty().bind(listView.widthProperty().subtract(40));
if (listView != null) cell.prefWidthProperty().bind(listView.widthProperty().subtract(40));
// Creating the Tooltip to deselect a message
final var tooltip = new Tooltip("You can select a message by clicking on it \nand deselect it by pressing \"ctrl\" and clicking on it");
tooltip.setWrapText(true);

View File

@ -0,0 +1,12 @@
/**
* This package contains custom list cells that are used to display certain
* things.
* <p>
* Project: <strong>envoy-client</strong><br>
* File: <strong>package-info.java</strong><br>
* Created: <strong>30.06.2020</strong><br>
*
* @author Leon Hofmeister
* @since Envoy Client v0.1-beta
*/
package envoy.client.ui.listcell;

View File

@ -102,6 +102,8 @@
onAction="#forwardMessage" text="Forward" />
<MenuItem mnemonicParsing="false"
onAction="#quoteMessage" text="Quote" />
<MenuItem mnemonicParsing="false"
onAction="#loadMessageInfoScene" text="Info" />
</items>
</ContextMenu>
</contextMenu>
@ -176,8 +178,8 @@
</tooltip>
</Label>
<Label fx:id="infoLabel" text="Something happened"
textFill="#faa007" visible="false" GridPane.columnIndex="1"
GridPane.rowIndex="1">
wrapText="true" textFill="#faa007" visible="false"
GridPane.columnIndex="1" GridPane.rowIndex="1">
<GridPane.margin>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</GridPane.margin>