Added correct visualization of filesystem address for DiskDriveNode & RaidNode

This commit is contained in:
IgorTimofeev 2023-10-17 16:21:25 +03:00
parent 4eabafbce2
commit 75e551ca3b
3 changed files with 24 additions and 9 deletions

View File

@ -1,12 +1,18 @@
package ocelot.desktop.node package ocelot.desktop.node
trait LabeledEntityNode extends EntityNode with LabeledNode { trait LabeledEntityNode extends EntityNode with LabeledNode {
override def label: Option[String] = protected def fallbackLabelAddress: Option[String] = Some(entity.node.address)
super.label
.orElse( override def label: Option[String] = {
Option(entity.node) // How the fuck node/address can be unknown?
.flatMap(node => Option(node.address)) // super.label
.orElse(Some("unknown")) // .orElse(
.filter(_ => exposeAddress) // Option(entity.node)
) // .flatMap(node => Option(node.address))
// .orElse(Some("unknown"))
// .filter(_ => exposeAddress)
// )
super.label.orElse(if (exposeAddress) fallbackLabelAddress else None)
}
} }

View File

@ -48,6 +48,10 @@ class DiskDriveNode(entity: FloppyDiskDrive)
) )
} }
// -------------------------------- LabeledEntityNode --------------------------------
override def fallbackLabelAddress: Option[String] = entity.filesystemNode.map(_.address)
// ---------------------------- DiskDriveAware ---------------------------- // ---------------------------- DiskDriveAware ----------------------------
override def floppyDiskDrive: FloppyDiskDrive = entity override def floppyDiskDrive: FloppyDiskDrive = entity

View File

@ -5,7 +5,7 @@ import ocelot.desktop.inventory.item.HddItem
import ocelot.desktop.inventory.traits.DiskItem import ocelot.desktop.inventory.traits.DiskItem
import ocelot.desktop.inventory.{Item, SyncedInventory} import ocelot.desktop.inventory.{Item, SyncedInventory}
import ocelot.desktop.node.Node.{HighlightThickness, NoHighlightSize} import ocelot.desktop.node.Node.{HighlightThickness, NoHighlightSize}
import ocelot.desktop.node.{EntityNode, WindowedNode} import ocelot.desktop.node.{EntityNode, LabeledEntityNode, WindowedNode}
import ocelot.desktop.ui.event.ClickEvent import ocelot.desktop.ui.event.ClickEvent
import ocelot.desktop.ui.event.handlers.DiskActivityHandler import ocelot.desktop.ui.event.handlers.DiskActivityHandler
import ocelot.desktop.ui.widget.contextmenu.ContextMenu import ocelot.desktop.ui.widget.contextmenu.ContextMenu
@ -21,6 +21,7 @@ import scala.util.Random
class RaidNode(val raid: Raid) extends class RaidNode(val raid: Raid) extends
EntityNode(raid) EntityNode(raid)
with SyncedInventory with SyncedInventory
with LabeledEntityNode
with DiskActivityHandler with DiskActivityHandler
with DefaultSlotItemsFillable with DefaultSlotItemsFillable
with WindowedNode[RaidWindow] with WindowedNode[RaidWindow]
@ -79,6 +80,10 @@ class RaidNode(val raid: Raid) extends
super.setupContextMenu(menu, event) super.setupContextMenu(menu, event)
} }
// -------------------------------- LabeledEntityNode --------------------------------
override def fallbackLabelAddress: Option[String] = raid.filesystem.map(_.node.address)
// -------------------------------- Inventory -------------------------------- // -------------------------------- Inventory --------------------------------
override type I = Item with HddItem override type I = Item with HddItem