de.katho.kBorrow.gui

## Class ArticlePanel

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JPanel
        - - de.katho.kBorrow.gui.ArticlePanel

All Implemented Interfaces:
  java.awt.event.ActionListener, java.awt.event.KeyListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

    public class ArticlePanel
    extends javax.swing.JPanel
    implements java.awt.event.ActionListener, java.awt.event.KeyListener

Erzeugt das Artikelpanel und implementiert damit verbundene Action- und KeyListener.

See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from class javax.swing.JPanel

`javax.swing.JPanel.AccessibleJPanel`

### Nested classes/interfaces inherited from class javax.swing.JComponent

`javax.swing.JComponent.AccessibleJComponent`

### Nested classes/interfaces inherited from class java.awt.Container

`java.awt.Container.AccessibleAWTContainer`

### Nested classes/interfaces inherited from class java.awt.Component

`java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy`

### Field Summary

Fields
`private ArticleController` `articleController` Referenz auf `ArticleController`
`private int` `articleEditId` Enthält die Artikel-ID, wenn ein Arikel bearbeitet wird.
`private boolean` `articleModeEdit` True, wenn ein Artikel bearbeitet wird.
`private KArticleModel` `articleModel` Referenz auf `KArticleModel`
`private javax.swing.JButton` `btnArticleCancel` Abbrechenbutton
`private javax.swing.JButton` `btnArticleSave` Speicherbutton
`private javax.swing.JLabel` `lblArticleStatus` Label, in dem Statusmeldungen angezeigt werden
`private static long` `serialVersionUID` Serial Version UID
`private javax.swing.JTextArea` `textAreaArticleDescription` Textarea, die die Artikelbeschreibung enthält.
`private javax.swing.JTextField` `textFieldArticleName` Textfeld, das den Artikelnamen enthält.

### Fields inherited from class javax.swing.JComponent

`listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

### Fields inherited from class java.awt.Component

`accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

### Fields inherited from interface java.awt.image.ImageObserver

`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

### Constructor Summary

Constructors
Constructor and Description
`ArticlePanel(DbConnector dbCon, java.util.HashMap<java.lang.String,KDataModel> models)` Gestaltet und erzeugt das Panel.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `actionPerformed(java.awt.event.ActionEvent e)` ActionListener für den Button-Press.
`void` `keyPressed(java.awt.event.KeyEvent e)` KeyListener für den Druck einer Taste Ruft `saveButtonPressed()` auf, wenn die gedrückte Taste die Entertaste war.
`void` `keyReleased(java.awt.event.KeyEvent e)` KeyListener für das Loslassen einer Taste.
`void` `keyTyped(java.awt.event.KeyEvent e)` KeyListener für das Tippen (Drücken und Loslassen) einer Taste.
`void` `resetModeEditArticle()` Setzt die Instanzvariable articleModeEdit zurück auf false und leer Textfeld und -area
`private void` `saveButtonPressed()` Führt die Aktionen aus, die beim Speichern eines Artikels geschehen.
`void` `setDeleteStatusLabel(int pCode)` Setzt das `lblArticleStatus` je nach übergebenem Statuscode.
`void` `setModeEditArticle(int pId)` Setzt die Instanzvariable articleModeEdit auf true und füllt Textfeld und -area entsprechend der übergebenen ID aus.

### Methods inherited from class javax.swing.JPanel

`getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

### Methods inherited from class javax.swing.JComponent

`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

### Methods inherited from class java.awt.Container

`add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### serialVersionUID

    private static final long serialVersionUID

Serial Version UID

See Also:
  Constant Field Values

#### textAreaArticleDescription

    private javax.swing.JTextArea textAreaArticleDescription

Textarea, die die Artikelbeschreibung enthält.

#### textFieldArticleName

    private javax.swing.JTextField textFieldArticleName

Textfeld, das den Artikelnamen enthält.

#### btnArticleSave

    private javax.swing.JButton btnArticleSave

Speicherbutton

#### btnArticleCancel

    private javax.swing.JButton btnArticleCancel

Abbrechenbutton

#### lblArticleStatus

    private javax.swing.JLabel lblArticleStatus

Label, in dem Statusmeldungen angezeigt werden

#### articleModeEdit

    private boolean articleModeEdit

True, wenn ein Artikel bearbeitet wird. Ansonsten false.

#### articleEditId

    private int articleEditId

Enthält die Artikel-ID, wenn ein Arikel bearbeitet wird.

#### articleController

    private ArticleController articleController

Referenz auf `ArticleController`

#### articleModel

    private KArticleModel articleModel

Referenz auf `KArticleModel`

### Constructor Detail

#### ArticlePanel

    public ArticlePanel(DbConnector dbCon,
                        java.util.HashMap<java.lang.String,KDataModel> models)
                 throws java.io.IOException

Gestaltet und erzeugt das Panel.

Parameters:
  `dbCon` - Referenz auf die Datenbankverbindung.
  `models` - HashMap mit KDataModels.
Throws:
  `java.io.IOException` - Wirft alle IOExceptions, die sonst nirgends bearbeitet wurden (???).

### Method Detail

#### actionPerformed

    public void actionPerformed(java.awt.event.ActionEvent e)

ActionListener für den Button-Press.

Specified by:
  `actionPerformed` in interface `java.awt.event.ActionListener`
Parameters:
  `e` - ActionEvent, von dem das Event erzeugt wurde.

#### resetModeEditArticle

    public void resetModeEditArticle()

Setzt die Instanzvariable articleModeEdit zurück auf false und leer Textfeld und -area. *

#### setModeEditArticle

    public void setModeEditArticle(int pId)

Setzt die Instanzvariable articleModeEdit auf true und füllt Textfeld und -area entsprechend der übergebenen ID aus.

Parameters:
  `pId` - Artikel-ID, gemäß der Textfeld und -area ausgefüllt werden sollen.

#### saveButtonPressed

    private void saveButtonPressed()

Führt die Aktionen aus, die beim Speichern eines Artikels geschehen.

Je nachdem, ob `articleModeEdit` true oder false ist, werden `ArticleController.editArticle(int, java.lang.String, java.lang.String)` oder `ArticleController.createArticle(java.lang.String, java.lang.String)` aufgerufen.

Falls editArticle aufgerufen wird, werden je nach Rückgabecode folgende Statusmeldungen angezeigt:

- 0: Artikel-ID "foo" erfolgreich bearbeitet.
- 1: SQL-Fehler: Artikel konnte nicht bearbeitet werden.
- 2: Artikelname muss ausgefüllt sein.

Falls createArticle aufgerufen wird, werden je nach Rückgabecode folgende Statusmeldungen angezeigt:

- 0: Artikel "foo" erfolgreich hinzugefügt.
- 1: SQL-Fehler. Artikel konnte nicht erstellt werden.
- 2: Es muss ein Artikelname vergeben werden.

#### keyPressed

    public void keyPressed(java.awt.event.KeyEvent e)

KeyListener für den Druck einer Taste

Ruft `saveButtonPressed()` auf, wenn die gedrückte Taste die Entertaste war.

Specified by:
  `keyPressed` in interface `java.awt.event.KeyListener`
Parameters:
  `e` - KeyEvent, von dem das Event erzeugt wurde.

#### keyReleased

    public void keyReleased(java.awt.event.KeyEvent e)

KeyListener für das Loslassen einer Taste.

Nicht implementiert

Specified by:
  `keyReleased` in interface `java.awt.event.KeyListener`
Parameters:
  `e` - KeyEvent, von dem das Event erzeugt wird.

#### keyTyped

    public void keyTyped(java.awt.event.KeyEvent e)

KeyListener für das Tippen (Drücken und Loslassen) einer Taste.

Nicht implementiert

Specified by:
  `keyTyped` in interface `java.awt.event.KeyListener`
Parameters:
  `e` - KeyEvent, von dem das Event erzeugt wird.

#### setDeleteStatusLabel

    public void setDeleteStatusLabel(int pCode)

Setzt das `lblArticleStatus` je nach übergebenem Statuscode.

- 0: Artikel erfolgreich gelöscht.
- 1: Artikel kann nicht gelöscht werden.
- 2: Artikel kann nicht gelöscht werden, während er verliehen ist.

Parameters:
  `pCode` - Statuscode als Int.