/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package examples;

/**
 *
 * @author VasaK
 */
public class PoplachovyZabezpecovaciSystem extends javax.swing.JFrame {

    /**
     * Creates new form PrekazkoveDetektory
     */
    public PoplachovyZabezpecovaciSystem() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLabel4 = new javax.swing.JLabel();
        jPanel3 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jScrollPane2 = new javax.swing.JScrollPane();
        jPanel4 = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jLabel2 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jScrollPane3 = new javax.swing.JScrollPane();
        jTable2 = new javax.swing.JTable();
        jLabel8 = new javax.swing.JLabel();

        jLabel4.setFont(new java.awt.Font("Tahoma", 2, 12)); // NOI18N
        jLabel4.setText("Tabulka 2: Úrovně střežení");

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setLocationByPlatform(true);
        setResizable(false);

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
        jLabel1.setText("Poplachový zabezpečovací systém");

        jPanel4.setPreferredSize(new java.awt.Dimension(771, 1514));

        jLabel3.setText("<html>   \n\t<head> \n\n\t</head>   \n\t<body>     \n\t<p style=\"margin-top: 5; text-align: justify; font-size: 12pt; padding-left:10pt; padding-right:10pt; background-color:lightgray\";>\n\n       &emsp <b>PZS (Poplachový Zabezpečovací Systém)</b> je elektronický systém určený k detekci asignalizaci vzniku nežádoucích událostí. Systémy a jejich pokyny pro aplikace jsou popsány v řadě norem ČSN EN 50131.\n<br><br>\n       &emsp Základními prvky systému jsou:<br>\na) <b>Ústředna</b>, která řídí systém,<br>\nb) <b>Detektory</b> detekující incidenty a hlásící je ústředně,<br>\nc) <b>Informační</b> zařízení, které prezentují informace jak o stavu kontrolované oblasti, tak i o stavu systému,<br>\nd) <b>Ovládací</b> zařízení, která umožňují obsluze systém ovládat,<br>\ne) <b>Akční</b> zařízení, která vykonávají určené akce v kontrolované oblasti a<br>\nf) <b>Komunikační</b> systém, umožňující komunikaci mezi jednotlivými prvky systému.<br><br>\n&emsp PZS lze mimo jiné klasivikovat dle způsobu komunikace mezi prvky systému. Rozeznáváme:<br>\n1) <b>Kabelové</b>, ve kterých se informace předávají po metalických kabelech. Výhodou je jendoduchost a spolehlivost, nevýhodou vysoká cena a pracnost instalace. Dále je lze dělit na:<br>\n&emsp 1.1) <b>Smyčkové</b>,<br>\n&emsp 1.2) <b>Sběrnicové</b>,<br>\n&emsp 1.3) <b>Kombinované</b>.<br>\n2) <b>Rádiové</b> systémy PZS informace předávají ve společném rádiovém kanálu. Výhodou je nižší cena a nevýhoodou nižší spolehlivost.<br>\n3) <b>Hybridní</b> systémy předávají informace po kabelech i rádiových vlnách.<br><br>\n&emsp Při <b>návrhu</b> je nutné nejprve provést analýzu rizik. Zde se posuzují jednak rizika hrozící zabezpečovaným aktivům, tak stavební konstrukce budovy a bezpečnostní historie jejího okolí. Sledují se například tyto faktory:<br><br>\n&bull druh majetku;<br>\n&bull hodnota majetku;<br>\n&bull množství a velikost majetku;<br>\n&bull historie krádeží;<br>\n&bull konstrukce střech, podlah, stěn a sklepení;<br>\n&bull kvalita stávajícího zabezečení<br><br>\na další. Z ostatních vlivů se pak sledují faktory jako:<br><br>\n&bull vytápění, vzduchotechnika či klimatizace, což může mít vliv na mikrovlnné detektory;<br>\n&bull Závěsné či jinak pohyblivé předměty;<br>\n&bull zdroje světla a elektromagnetického rušení;<br>\n&bull vnější zvuky;<br>\n&bull sousední prostory<br><br>\na další. Analýzu rizik lze zpracovat na základě tohoto dotazníku.\n     \n     \n\t</body> \n</html> ");

        jLabel5.setText("<html>    \t<head>   \t</head>    \t<body>      \t<p style=\"margin-top: 5; text-align: justify; font-size: 12pt; padding-left:10pt; padding-right:10pt; background-color:lightgray\";>         &emsp Na základě analýzy ostatních vlivů se pak zvolí komponenty z některé se <b>čtyř tříd prostředí</b>. Třídy jsou vzestupně přísnější. Komponent vyšší třídy může být použit v systému nižší třídy, avšak naopak to nelze. <br><br>        &emsp Základními prvky systému jsou:<br> I. <b>Vnitřní</b>. Uvažují se vlivy prostředí při stálé teplotě, například v obytných prostorách. +5 °C až +40 °C, střední relativní vlhkost přibližně 75 %.<br> II. <b>Vnitřní všeobecné</b>. Vnitřní prostory bez stálé teploty, případně nevytápěné. Může docházet ke kondenzaci vody na oknech. Chodby, sklady, haly. -10 °C až +40 °C, relativní vlhkosti přibližně 75 % bez kondenzace.<br> III. <b>Venkovní chráněné nebo extrémní vnitřní podmínky</b>. Komponenty I&HAS se vyskytují vně budov, přičemž ale nejsou plně vystaveny povětrnostním vlivům. -25 °C až +50 °C při relativní vlhkosti přibližně 75 % bez kondenzace. Podobu 30 dní během roku se může relativní vlhkost pohybovat až mezi 85 % až 95 % bez kondenzace.<br> IV. <b>Venkovní všeobecné</b>. Komponenty jsou umístěné vně budov, přičemž jsou plně vystaveny povětrnostním vlivům. -25 °C až +60 °C, při relativní vlhkosti přibližně 75 % bez kondenzace. Podobu 30 dní během roku se může relativní vlhkost pohybovat až mezi 85 % až 95 % bez kondenzace.<br><br>  &emsp Z vypracované analýzy rizik a analýzy vnitřních prostor je možné odhadnout znalosti a vybavenost případného útočníka a možné způsoby útoku. Systém musí být zařazen do jednoho ze čtyř stupňů zabezpečení, přičemž tento stupeň je dán stupněm zabezpečení komponentu s nejnižším stupněm zabezpečení. Pakliže je systém rozdělen do několika podsystémů a komponenty nejsou mezi těmito podsystémy sdíleny, určuje se stupeň zabezpečení pro každý podsystém zvlášť.<br>              \t</body>  </html> ");

        jLabel6.setFont(new java.awt.Font("Tahoma", 2, 12)); // NOI18N
        jLabel6.setText("Tabulka 1: Stupeň zabezpečení");

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {"Stupeň 1", "Nízké", "<html>Útočník má malou znalost PZS a má k dispozici malý sortiment snadno dostupných nástrojů</html>"},
                {"Stupeň 2", "Nízké až střední", "<html>Útočník má omezenou znalost PZS a používá běžné nářadí a přenosné přístroje</html>"},
                {"Stupeň 3", "Střední až vysoké", "<html>Útočník je obeznámen s PZS má rozsáhlý sortiment nářadí a přístrojů</html>"},
                {"Stupeň 4", "Vysoké", "<html>Útočník je schopen vypracovat si plán vniknutí a má veškerý sortiment nářadí včetně komponentů PZS</html>"}
            },
            new String [] {
                "Stupeň zabezpečení", "Riziko", "Útočník"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.String.class
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }
        });
        jTable1.setRowHeight(40);
        jScrollPane1.setViewportView(jTable1);

        jLabel2.setText("<html>   \n\t<head> \n\n\t</head>   \n\t<body>     \n\t<p style=\"margin-top: 5; text-align: justify; font-size: 12pt; padding-left:10pt; padding-right:10pt; background-color:lightgray\";>\n\n       &emsp Ze stupně zabezpečení pak lze určit <b>úroveň střežení a typy detekcí</b>. Příloha F. normy ČSN CLC/TS 50131-7 uvádí pomůcku, která má napomoci stanovit, které druhy narušení lze očekávat. Tato pomůcka však není kompletní, \na nemusí být ani striktně dodržována – pokud projektant rozhodne, že některé narušení nepřipadá v úvahu, může si dovolit jej neošetřit.\n<br>\n\n     \n     \n\t</body> \n</html> ");

        jLabel7.setFont(new java.awt.Font("Tahoma", 2, 12)); // NOI18N
        jLabel7.setText("Tabulka 2: Úrovně střežení");

        jTable2.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {"Obvodové dveře", "O", "O", "O + P", "O + P"},
                {"Okna", null, "O", "O + P", "O + P"},
                {"Ostatní otvory", null, "O", "O + P", "O + P"},
                {"Stěny", null, null, null, "P"},
                {"Stropy, střechy", null, null, null, "P"},
                {"Podlahy", null, null, null, "P"},
                {"Místnosti", "T", "T", "T", "T"},
                {"Předmět s vysokým rizikem", null, null, "S", "S"}
            },
            new String [] {
                "", "Stupeň 1", "Stupeň 2", "Stupeň 3", "Stupeň 4"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }
        });
        jScrollPane3.setViewportView(jTable2);

        jLabel8.setText("<html>   \n\t<head> \n\n\t</head>   \n\t<body>     \n\t<p style=\"margin-top: 5; text-align: justify; font-size: 12pt; padding-left:10pt; padding-right:10pt; background-color:lightgray\";>\n\n       &emsp Vysvětlivky:<br><br>\nO = otevření; například magnetický detektor otevření<br>\nP = průnik; příkladem může být detektor otřesů<br>\nS = objekt vyžadující zvláštní pozornost; použitý může být například některý z předmětových detektorů<br>\nT = past; PIR nebo mikrovlnný detektor<br>\n<br>\n&emsp Po určení stupně zabezpečení a úrovně zabezpečení pak lze přejít na volbu konkrétních zařízení a jejich umístění. Je nutné zohlednit technickou dokumentaci jednotlivých prvků I&HAS, stanovující pracovní podmínky jednotlivých komponent, faktory, které na ně mohou negativně působit a jejich stupeň zabezpečení. U umístění prvků I&HAS pak platí určité zásady. Například ústředna by měla být v prostoru s nejvyšším stupněm zabezpečení, či ovládací prvky musí být na takových místech, aby umožnily co nejrychlejší a nejkratší přístup, avšak neumožňovala odpozorování kódu nepovolanými osobami (řešitelné například vytvořením přístupové trasy a umožněním nastavení systému do klidu zevnitř objektu). Umisťování detektorů by se mělo taktéž řídit technickou dokumentací jednotlivých komponent. Je zároveň nutné dbát na zajištění stálého napájení i v případě výpadku síťového napájení či nouzových stavech, čemuž se podrobně věnuje kapitola 9 normy ČSN CLC/TS 50131-1.\n     \n     \n\t</body> \n</html> ");

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                    .addGroup(jPanel4Layout.createSequentialGroup()
                        .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel4Layout.createSequentialGroup()
                                .addGap(268, 268, 268)
                                .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 202, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel4Layout.createSequentialGroup()
                                .addGap(241, 241, 241)
                                .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 161, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(0, 322, Short.MAX_VALUE))
                    .addGroup(jPanel4Layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(jScrollPane3)
                            .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))))
                .addContainerGap())
            .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel4Layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 782, Short.MAX_VALUE)
                    .addContainerGap()))
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
                .addGap(653, 653, 653)
                .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 313, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel6)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 198, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(36, 36, 36)
                .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel7)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 175, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 255, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel4Layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 623, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(1156, Short.MAX_VALUE)))
        );

        jScrollPane2.setViewportView(jPanel4);

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addGap(195, 195, 195)
                .addComponent(jLabel1)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            .addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 821, Short.MAX_VALUE)
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addGap(18, 18, 18)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 629, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(PoplachovyZabezpecovaciSystem.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(PoplachovyZabezpecovaciSystem.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(PoplachovyZabezpecovaciSystem.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(PoplachovyZabezpecovaciSystem.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new PoplachovyZabezpecovaciSystem().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JTable jTable1;
    private javax.swing.JTable jTable2;
    // End of variables declaration//GEN-END:variables
}
