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
trait LabeledEntityNode extends EntityNode with LabeledNode {
override def label: Option[String] =
super.label
.orElse(
Option(entity.node)
.flatMap(node => Option(node.address))
.orElse(Some("unknown"))
.filter(_ => exposeAddress)
)
protected def fallbackLabelAddress: Option[String] = Some(entity.node.address)
override def label: Option[String] = {
// How the fuck node/address can be unknown?
// super.label
// .orElse(
// 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 ----------------------------
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.{Item, SyncedInventory}
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.handlers.DiskActivityHandler
import ocelot.desktop.ui.widget.contextmenu.ContextMenu
@ -21,6 +21,7 @@ import scala.util.Random
class RaidNode(val raid: Raid) extends
EntityNode(raid)
with SyncedInventory
with LabeledEntityNode
with DiskActivityHandler
with DefaultSlotItemsFillable
with WindowedNode[RaidWindow]
@ -79,6 +80,10 @@ class RaidNode(val raid: Raid) extends
super.setupContextMenu(menu, event)
}
// -------------------------------- LabeledEntityNode --------------------------------
override def fallbackLabelAddress: Option[String] = raid.filesystem.map(_.node.address)
// -------------------------------- Inventory --------------------------------
override type I = Item with HddItem