de.bsvrz.pat.sysbed.dataEditor
Class DatasetEditorFrame

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by de.bsvrz.pat.sysbed.dataEditor.DatasetEditorFrame
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants

public class DatasetEditorFrame
extends JFrame

Diese Klasse kann anhand einer Datenidentifikation (Attributgruppe, Aspekt und Objekt) das aktuelle Objekt vom Datenverteiler darstellen, ein neues Objekt erstellen und an den Datenverteiler senden oder den Parametereditor starten.

Author:
Kappich Systemberatung
See Also:
DataEditorPanel, Serialized Form

Nested Class Summary
private  class DatasetEditorFrame.DatasetReceiver
          Diese Klasse empfängt die Daten vom Datenverteiler, worauf die Anwendung sich vorher angemeldet hat.
private  class DatasetEditorFrame.DatasetSender
          Diese Klasse überprüft mit Hilfe der Sendesteuerung, ob gesendet werden kann oder nicht.
 
Nested classes/interfaces inherited from class javax.swing.JFrame
JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
private  Aspect _aspect
          speichert das aktuelle Aspekt
private  AttributeGroup _attributeGroup
          speichert die aktuelle Attributgruppe
private  ClientDavInterface _connection
          die Verbindung zum Datenverteiler
private  DataDescription _dataDescription
          speichert die Datenbeschreibung für die Anmeldung beim Datenverteiler
private  DataEditorPanel _dataEditorPanel
          speichert den DataEditorPanel
private static Debug _debug
          Der Debug-Logger
private  Container _pane
          Speichert die ContentPane des Fensters.
private  ReceiveOptions _receiveOptions
          Speichert die Empfängeroptionen für die Anmeldung beim Datenverteiler.
private  DatasetEditorFrame.DatasetReceiver _receiver
          speichert das Objekt, welches die Daten vom Datenverteiler empfängt
private  ReceiverRole _receiverRole
          Speichert die Rolle für die Anmeldung beim Datenverteiler.
private  JButton _sendButton
          merkt sich den Button zum Senden eines Datensatzes
private  DatasetEditorFrame.DatasetSender _sender
          speichert das Objekt, welches überprüft, ob gesendet werden darf
private  SenderRole _senderRole
          Speichert die Rolle für die Anmeldung beim Datenverteiler.
private  SystemObject _systemObject
          speichert das aktuelle Systemobjekt
private  SystemObject[] _systemObjects
          speichert die aktuellen Systemobjekte für die Anmeldung beim Datenverteiler
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
DatasetEditorFrame(ClientDavInterface connection, String title, AttributeGroup attributeGroup, Aspect aspect, SystemObject systemObject, int simulationVariant)
          Der Konstruktor erstellt ein Fenster, welches die aktuellen Daten zu einer ausgewählten Datenidentifikation anzeigt.
 
Method Summary
private  JPanel getHeaderPanel(AttributeGroup attributeGroup, Aspect aspect, SystemObject systemObject)
          Stellt die ausgewählte Datenidentifikation dar.
 Dimension getPreferredSize()
          Die Methode getPreferredSize() wird überschrieben, da sonst Teile des Fensters hinter der Taskbar liegen und somit nicht zu sehen sind.
private  JPanel getSenderButtons()
          In dieser Methode werden die Buttons angeordnet, die zum Erzeugen, Löschen und Senden von Datensätze benötigt werden.
private  GridBagConstraints makegbc(int x, int y, int width, int height)
          Hilfsmethode für das GridBagLayout zur Positionierung der Elemente.
private  void registerReceiver()
          Meldet sich mit der Datenidentifikation als Empfänger beim Datenverteiler an.
private  void registerSender()
          Meldet sich mit der Datenidentifikation als Sender beim Datenverteiler an.
 void setReceiveOptions(ReceiveOptions receiveOptions)
          Setzt die Empfangsoption (Online, nur geänderte Datensätze, auch nachgelieferte Datensätze).
 void setReceiverRole(ReceiverRole receiverRole)
          Setzt die Rolle des Empfängers.
 void setSenderRole(SenderRole senderRole)
          Mit dieser Methode kann die Rolle des Senders geändert werden.
 void startParameterEditor()
          TBD wird noch implementiert
 void startSendCurrentData()
          Diese Methode wird aufgerufen, wenn für eine Datenidentifikation ein neuer Datensatz erzeugt/erstellt und gesendet werden soll.
 void startShowCurrentData()
          Diese Methode wird aufgerufen, wenn eine Datenidentifikation nur angezeigt werden soll.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

_debug

private static final Debug _debug
Der Debug-Logger


_connection

private final ClientDavInterface _connection
die Verbindung zum Datenverteiler


_dataDescription

private final DataDescription _dataDescription
speichert die Datenbeschreibung für die Anmeldung beim Datenverteiler


_attributeGroup

private final AttributeGroup _attributeGroup
speichert die aktuelle Attributgruppe


_aspect

private final Aspect _aspect
speichert das aktuelle Aspekt


_systemObject

private final SystemObject _systemObject
speichert das aktuelle Systemobjekt


_systemObjects

private final SystemObject[] _systemObjects
speichert die aktuellen Systemobjekte für die Anmeldung beim Datenverteiler


_dataEditorPanel

private final DataEditorPanel _dataEditorPanel
speichert den DataEditorPanel


_receiverRole

private ReceiverRole _receiverRole
Speichert die Rolle für die Anmeldung beim Datenverteiler. Voreingestellt auf "Empfänger".


_receiveOptions

private ReceiveOptions _receiveOptions
Speichert die Empfängeroptionen für die Anmeldung beim Datenverteiler. Voreingestellt auf "Online (normal)".


_senderRole

private SenderRole _senderRole
Speichert die Rolle für die Anmeldung beim Datenverteiler. Voreingestellt auf "Sender".


_receiver

private DatasetEditorFrame.DatasetReceiver _receiver
speichert das Objekt, welches die Daten vom Datenverteiler empfängt


_sender

private DatasetEditorFrame.DatasetSender _sender
speichert das Objekt, welches überprüft, ob gesendet werden darf


_pane

private final Container _pane
Speichert die ContentPane des Fensters. Dort werden die Panel angeordnet.


_sendButton

private JButton _sendButton
merkt sich den Button zum Senden eines Datensatzes

Constructor Detail

DatasetEditorFrame

public DatasetEditorFrame(ClientDavInterface connection,
                          String title,
                          AttributeGroup attributeGroup,
                          Aspect aspect,
                          SystemObject systemObject,
                          int simulationVariant)
Der Konstruktor erstellt ein Fenster, welches die aktuellen Daten zu einer ausgewählten Datenidentifikation anzeigt. Erhält der Datenverteiler neue Daten für diese Datenidentifikation, dann wird das Fenster aktualisiert.
Wird als Simulationsvariante der Wert -1 übergeben, wird so verfahren, als ob keine Simulationsvariante übergeben wurde.

Parameters:
connection - Verbindung zum Datenverteiler
title - Titel des Fensters
attributeGroup - Attributgruppe zur Anmeldung beim Datenverteiler
aspect - Aspekt zur Anmeldung beim Datenverteiler
systemObject - Systemobjekt zur Anmeldung beim Datenverteiler
simulationVariant - gibt die Simulationsvariante an, -1 entspricht keiner Simulationsvariante
Method Detail

startShowCurrentData

public void startShowCurrentData()
Diese Methode wird aufgerufen, wenn eine Datenidentifikation nur angezeigt werden soll. Die Empfangsoptionen ist auf "Online" und die Empfängerrolle auf "Empfänger" voreingestellt.


startSendCurrentData

public void startSendCurrentData()
                          throws OneSubscriptionPerSendData
Diese Methode wird aufgerufen, wenn für eine Datenidentifikation ein neuer Datensatz erzeugt/erstellt und gesendet werden soll. Die Senderrolle ist auf "Sender" voreingestellt.

Throws:
OneSubscriptionPerSendData - Ausnahme, die bei einer Sendeanmeldung generiert wird, wenn bereits eine lokale Sendeanmeldung für die gleichen Daten von einem anderen Anwendungsobjekt vorliegt.

startParameterEditor

public void startParameterEditor()
TBD wird noch implementiert


setSenderRole

public void setSenderRole(SenderRole senderRole)
Mit dieser Methode kann die Rolle des Senders geändert werden. Die Default-Einstellung ist "Sender".

Parameters:
senderRole - die Rolle ist Sender

setReceiverRole

public void setReceiverRole(ReceiverRole receiverRole)
Setzt die Rolle des Empfängers. Diese wird für den Datenverteiler benötigt. Die Default-Einstellung ist "Empfänger".

Parameters:
receiverRole - die Rolle des Empfängers

setReceiveOptions

public void setReceiveOptions(ReceiveOptions receiveOptions)
Setzt die Empfangsoption (Online, nur geänderte Datensätze, auch nachgelieferte Datensätze). Die Default-Einstellung ist "Online (normal)".

Parameters:
receiveOptions - die Empfangsoption

getPreferredSize

public Dimension getPreferredSize()
Die Methode getPreferredSize() wird überschrieben, da sonst Teile des Fensters hinter der Taskbar liegen und somit nicht zu sehen sind.

Overrides:
getPreferredSize in class Container
Returns:
die Größe des Fensters

getHeaderPanel

private JPanel getHeaderPanel(AttributeGroup attributeGroup,
                              Aspect aspect,
                              SystemObject systemObject)
Stellt die ausgewählte Datenidentifikation dar.

Parameters:
attributeGroup - die darzustellende Attributgruppe
aspect - den darzustellenden Aspekt
systemObject - das darzustellende Systemobjekt
Returns:
die ausgewählte Datenidentifikation als JPanel

getSenderButtons

private JPanel getSenderButtons()
In dieser Methode werden die Buttons angeordnet, die zum Erzeugen, Löschen und Senden von Datensätze benötigt werden.

Returns:
die auf einem Panel angeordneten Buttons

registerReceiver

private void registerReceiver()
                       throws DataNotSubscribedException
Meldet sich mit der Datenidentifikation als Empfänger beim Datenverteiler an.

Throws:
DataNotSubscribedException - Daten-Nicht-Angemeldet-Ausnahme, die beim Senden von Datensätzen ohne entsprechende Sendeanmeldungen generiert wird.

registerSender

private void registerSender()
                     throws OneSubscriptionPerSendData
Meldet sich mit der Datenidentifikation als Sender beim Datenverteiler an.

Throws:
OneSubscriptionPerSendData - Ausnahme, die bei einer Sendeanmeldung generiert wird, wenn bereits eine lokale Sendeanmeldung für die gleichen Daten von einem anderen Anwendungsobjekt vorliegt.

makegbc

private GridBagConstraints makegbc(int x,
                                   int y,
                                   int width,
                                   int height)
Hilfsmethode für das GridBagLayout zur Positionierung der Elemente.

Parameters:
x - die x-Position im Grid
y - die y-Position im Grid
width - gibt die Anzahl der Spalten an, die die Komponente nutzen soll
height - gibt die Anzahl der Zeilen an, die die Komponente nutzen soll
Returns:
die Rahmenbedingungen für eine Komponente