feat: F4.7 the data exchange window, measured against Java's
One row per frame (its highest layer's), Java's detail tree, the table as Java's text file, "Tabellen löschen" for every card (clearCapture in the room), a tab per card with Java's title, Java's layer colours as tokens, the chosen frame and autoscroll per tab. New oracle ExchangeWindowRun. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1341,3 +1341,180 @@
|
||||
white-space: pre-wrap;
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
|
||||
/* The data exchange window (AggregatedExchangeDialog): Java's is three
|
||||
* quarters of the screen wide and four fifths high; the tabs, a bar for what
|
||||
* Java's right mouse button offers, the table (a row per frame in its layer's
|
||||
* colour, Java's fonts by column) and the chosen frame's details below. */
|
||||
.capture-window {
|
||||
width: 960px;
|
||||
height: 640px;
|
||||
}
|
||||
|
||||
.capture-tabs {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 4px;
|
||||
padding: 6px 8px 0;
|
||||
background: var(--surface-raised);
|
||||
border-bottom: 1px solid var(--border-default);
|
||||
}
|
||||
|
||||
.capture-tab {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
border: 1px solid var(--border-default);
|
||||
border-bottom: none;
|
||||
border-radius: 6px 6px 0 0;
|
||||
background: var(--surface-sunken);
|
||||
}
|
||||
|
||||
.capture-tab button {
|
||||
min-height: 36px;
|
||||
border: none;
|
||||
background: transparent;
|
||||
color: var(--text-primary);
|
||||
font: inherit;
|
||||
font-size: 13px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.capture-tab button[aria-selected='true'] {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.capture-tab:has(button[aria-selected='true']) {
|
||||
background: var(--surface-card);
|
||||
}
|
||||
|
||||
.capture-tab-close {
|
||||
min-width: 36px;
|
||||
color: var(--text-secondary) !important;
|
||||
font-size: 18px !important;
|
||||
}
|
||||
|
||||
.capture-bar {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 6px 8px;
|
||||
background: var(--surface-card);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.capture-bar button {
|
||||
min-height: 44px;
|
||||
padding: 0 12px;
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: 8px;
|
||||
background: var(--surface-raised);
|
||||
color: var(--text-primary);
|
||||
font: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.capture-bar label {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
min-height: 44px;
|
||||
}
|
||||
|
||||
.capture-bar input {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.capture-table {
|
||||
flex: 3;
|
||||
min-height: 0;
|
||||
overflow: auto;
|
||||
background: var(--surface-sunken);
|
||||
}
|
||||
|
||||
.capture-table table {
|
||||
width: 100%;
|
||||
min-width: 760px;
|
||||
border-collapse: separate;
|
||||
border-spacing: 0 2px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.capture-table th {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
padding: 6px;
|
||||
background: var(--surface-raised);
|
||||
color: var(--text-primary);
|
||||
text-align: left;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.capture-row {
|
||||
color: var(--capture-on-layer);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.capture-row td {
|
||||
padding: 4px 6px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* Java's fonts: number and time plain, addresses and comment monospaced, the protocol bold, the layer bold italic. */
|
||||
.capture-row td:nth-child(3),
|
||||
.capture-row td:nth-child(4),
|
||||
.capture-row td:nth-child(7) {
|
||||
font-family: ui-monospace, Menlo, Consolas, monospace;
|
||||
}
|
||||
|
||||
.capture-row td:nth-child(5) {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.capture-row td:nth-child(6) {
|
||||
font-weight: 700;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.capture-networkAccess {
|
||||
background: var(--capture-network-access);
|
||||
}
|
||||
|
||||
.capture-internet {
|
||||
background: var(--capture-internet);
|
||||
}
|
||||
|
||||
.capture-transport {
|
||||
background: var(--capture-transport);
|
||||
}
|
||||
|
||||
.capture-application {
|
||||
background: var(--capture-application);
|
||||
}
|
||||
|
||||
.capture-row[aria-selected='true'] {
|
||||
background: var(--capture-chosen);
|
||||
color: var(--capture-on-chosen);
|
||||
}
|
||||
|
||||
.capture-row:focus-visible {
|
||||
outline: 2px solid var(--border-focus);
|
||||
outline-offset: -2px;
|
||||
}
|
||||
|
||||
/* MessageDetailsPanel: a tree in bold monospace, a long comment on lines of its own. */
|
||||
.capture-details {
|
||||
flex: 2;
|
||||
min-height: 0;
|
||||
margin: 0;
|
||||
padding: 6px;
|
||||
overflow: auto;
|
||||
list-style: none;
|
||||
border-top: 1px solid var(--border-strong);
|
||||
background: var(--surface-card);
|
||||
color: var(--text-primary);
|
||||
font: 700 12px ui-monospace, Menlo, Consolas, monospace;
|
||||
white-space: pre-wrap;
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user