/* * Copyright (C) 2010-2016 JPEXS * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.jpexs.decompiler.flash.gui; import com.jpexs.decompiler.flash.configuration.Configuration; import com.jpexs.helpers.utf8.Utf8Helper; import java.awt.Font; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.ComboBoxModel; import javax.swing.DefaultComboBoxModel; /** * * @author JPEXS */ public class FontPreviewDialog extends AppDialog { /** * Creates new form FontPreviewDialog * * @param parent Parent frame * @param font Font * @param modal Will show as modal? */ public FontPreviewDialog(java.awt.Frame parent, boolean modal, Font font) { super(); setModal(true); initComponents(); View.setWindowIcon(this); labelSample12.setFont(font.deriveFont(12f)); labelSample18.setFont(font.deriveFont(18f)); labelSample24.setFont(font.deriveFont(24f)); labelSample36.setFont(font.deriveFont(36f)); labelSample48.setFont(font.deriveFont(48f)); labelSample60.setFont(font.deriveFont(60f)); labelSample72.setFont(font.deriveFont(72f)); comboBoxSampleTexts.setSelectedIndex(Configuration.guiFontPreviewSampleText.get(0)); if (Configuration.guiFontPreviewWidth.hasValue()) { int width = Configuration.guiFontPreviewWidth.get(); int height = Configuration.guiFontPreviewHeight.get(); setSize(width, height); } if (Configuration.guiFontPreviewPosX.hasValue()) { int posX = Configuration.guiFontPreviewPosX.get(); int posY = Configuration.guiFontPreviewPosY.get(); setLocation(posX, posY); } setText((String) comboBoxSampleTexts.getSelectedItem()); labelFontName.setText(font.getFontName()); } private void setText(String text) { labelSample12.setText(text); labelSample18.setText(text); labelSample24.setText(text); labelSample36.setText(text); labelSample48.setText(text); labelSample60.setText(text); labelSample72.setText(text); } private ComboBoxModel<String> getModel() { List<String> sampleTexts = new ArrayList<>(); BufferedReader br = new BufferedReader(new InputStreamReader(FontPreviewDialog.class.getResourceAsStream("/com/jpexs/decompiler/flash/tags/font/font_preview_samples.txt"), Utf8Helper.charset)); String s; try { while ((s = br.readLine()) != null) { sampleTexts.add(s); } } catch (IOException ex) { Logger.getLogger(FontPreviewDialog.class.getName()).log(Level.SEVERE, "Cannot read font preview dialog sample texts", ex); } return new DefaultComboBoxModel<>(sampleTexts.toArray(new String[sampleTexts.size()])); } /** * 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() { jScrollPane1 = new javax.swing.JScrollPane(); jPanel1 = new javax.swing.JPanel(); labelSample72 = new javax.swing.JLabel(); labelSample60 = new javax.swing.JLabel(); labelSample12 = new javax.swing.JLabel(); labelSample24 = new javax.swing.JLabel(); labelSample48 = new javax.swing.JLabel(); labelSample36 = new javax.swing.JLabel(); labelSample18 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); comboBoxSampleTexts = new javax.swing.JComboBox(); jLabel1 = new javax.swing.JLabel(); labelFontName = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("com/jpexs/decompiler/flash/gui/locales/FontPreviewDialog"); // NOI18N setTitle(bundle.getString("fontPreview.dialog.title")); // NOI18N setPreferredSize(new java.awt.Dimension(1024, 512)); addComponentListener(new java.awt.event.ComponentAdapter() { public void componentMoved(java.awt.event.ComponentEvent evt) { formComponentMoved(evt); } public void componentResized(java.awt.event.ComponentEvent evt) { formComponentResized(evt); } }); labelSample72.setFont(new java.awt.Font("Tahoma", 0, 72)); // NOI18N labelSample72.setText("---"); labelSample60.setFont(new java.awt.Font("Tahoma", 0, 60)); // NOI18N labelSample60.setText("---"); labelSample12.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N labelSample12.setText("---"); labelSample24.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N labelSample24.setText("---"); labelSample48.setFont(new java.awt.Font("Tahoma", 0, 48)); // NOI18N labelSample48.setText("---"); labelSample36.setFont(new java.awt.Font("Tahoma", 0, 36)); // NOI18N labelSample36.setText("---"); labelSample18.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N labelSample18.setText("---"); jLabel2.setText("12"); jLabel3.setText("18"); jLabel4.setText("24"); jLabel5.setText("36"); jLabel6.setText("48"); jLabel7.setText("60"); jLabel8.setText("72"); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel2) .addComponent(jLabel3) .addComponent(jLabel4) .addComponent(jLabel5) .addComponent(jLabel6) .addComponent(jLabel7) .addComponent(jLabel8)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(labelSample72) .addComponent(labelSample18) .addComponent(labelSample12) .addComponent(labelSample24) .addComponent(labelSample36) .addComponent(labelSample48) .addComponent(labelSample60)) .addContainerGap(692, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(labelSample12) .addComponent(jLabel2)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(labelSample18) .addComponent(jLabel3)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(labelSample24) .addComponent(jLabel4)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(labelSample36) .addComponent(jLabel5)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(labelSample48) .addComponent(jLabel6)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(labelSample60) .addComponent(jLabel7)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(labelSample72) .addComponent(jLabel8)) .addContainerGap()) ); jScrollPane1.setViewportView(jPanel1); comboBoxSampleTexts.setModel(getModel()); comboBoxSampleTexts.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { comboBoxSampleTextsItemStateChanged(evt); } }); java.util.ResourceBundle bundle1 = java.util.ResourceBundle.getBundle("com/jpexs/decompiler/flash/gui/locales/MainFrame"); // NOI18N jLabel1.setText(bundle1.getString("font.name")); // NOI18N labelFontName.setText("-"); 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() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(comboBoxSampleTexts, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(labelFontName) .addGap(519, 519, 519))) .addContainerGap()) .addComponent(jScrollPane1) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addComponent(comboBoxSampleTexts, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(labelFontName)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 431, Short.MAX_VALUE)) ); pack(); }// </editor-fold>//GEN-END:initComponents private void comboBoxSampleTextsItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_comboBoxSampleTextsItemStateChanged Configuration.guiFontPreviewSampleText.set(comboBoxSampleTexts.getSelectedIndex()); setText((String) comboBoxSampleTexts.getSelectedItem()); }//GEN-LAST:event_comboBoxSampleTextsItemStateChanged private void formComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentResized Configuration.guiFontPreviewWidth.set(getWidth()); Configuration.guiFontPreviewHeight.set(getHeight()); }//GEN-LAST:event_formComponentResized private void formComponentMoved(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentMoved Configuration.guiFontPreviewPosX.set(getX()); Configuration.guiFontPreviewPosY.set(getY()); }//GEN-LAST:event_formComponentMoved // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JComboBox comboBoxSampleTexts; 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 jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JLabel labelFontName; private javax.swing.JLabel labelSample12; private javax.swing.JLabel labelSample18; private javax.swing.JLabel labelSample24; private javax.swing.JLabel labelSample36; private javax.swing.JLabel labelSample48; private javax.swing.JLabel labelSample60; private javax.swing.JLabel labelSample72; // End of variables declaration//GEN-END:variables }