Package service

Source Code of service.LabelTasarimPaneli

package service;

import hibernateSwingApi.component.CTextField;

import java.awt.Checkbox;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
import javax.swing.UIManager;
import javax.swing.border.LineBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import barcode.pojos.EtiketLabel;

public class LabelTasarimPaneli extends JPanel {
  public LabelTasarimPaneli() {
  }

  FontMetrics metrics;

  private static final long serialVersionUID = 1L;
  private int labelWidth;
  private int labelHeight;
  private JButton bold;
  private CTextField icerik;
  private JButton italic;
  private JSpinner size;
  private JLabel labelTasarla;
  private JComboBox<String> yazitipi;
  private JButton color;
  private JPanel cPanelLabelDuzenle;
  private JPanel onizleme;
  private JSlider gen;
  private JSlider yuks;
  private JButton reverseColor;
  private Checkbox drawCross;

  public JPanel panelOlustur(JPanel onizleme, EtiketLabel etiketLabel,
      JSlider gen, JSlider yuks) {
    this.onizleme = onizleme;
    this.gen = gen;
    this.yuks = yuks;
    labelTasarla = etiketLabel.getLabel();
    cPanelLabelDuzenle = new JPanel();
    cPanelLabelDuzenle.setName("Label Tasarla");
    cPanelLabelDuzenle.setBounds(0, 0, 340, 120);
    cPanelLabelDuzenle.setBorder(new LineBorder(new Color(0, 0, 0), 2));
    cPanelLabelDuzenle.setLayout(null);

    icerik = new CTextField(30);
    icerik.setName("icerik");
    icerik.setFont(new Font("Arial", Font.PLAIN, 11));
    icerik.setBounds(10, 11, 315, 39);
    cPanelLabelDuzenle.add(icerik);
    icerik.setColumns(10);

    metrics = icerik.getFontMetrics(icerik.getFont());

    size = new JSpinner();
    size.setModel(new SpinnerNumberModel(11, 8, 72, 1));
    size.setBounds(121, 62, 41, 20);
    cPanelLabelDuzenle.add(size);

    yazitipi = new JComboBox<String>();
    yazitipi.setBounds(9, 62, 102, 20);
    GraphicsEnvironment ge = GraphicsEnvironment
        .getLocalGraphicsEnvironment();
    String[] fonts = ge.getAvailableFontFamilyNames();
    for (int i = 0; i < fonts.length; i++) {
      if (fonts[i].equals("Arial")) {
        fonts[i] = "Arial Black";
      }
    }
    yazitipi.setModel(new DefaultComboBoxModel<String>(fonts));

    cPanelLabelDuzenle.add(yazitipi);

    bold = new JButton();
    bold.setText("K");
    bold.setFont(new Font("Tahoma", Font.BOLD, 10));
    bold.setBounds(168, 61, 41, 23);

    cPanelLabelDuzenle.add(bold);

    italic = new JButton();
    italic.setText("T");
    italic.setFont(new Font("Arial", Font.ITALIC, 10));
    italic.setBounds(219, 61, 41, 23);

    cPanelLabelDuzenle.add(italic);

    color = new JButton();
    color.setBackground(labelTasarla.getForeground());
    color.setFont(new Font("Arial", Font.PLAIN, 7));
    color.setBounds(270, 61, 55, 23);

    cPanelLabelDuzenle.add(color);

    reverseColor = new JButton();
    reverseColor.setText("Ayna");
    reverseColor.setFont(new Font("Tahoma", Font.BOLD, 10));
    reverseColor.setBounds(9, 90, 70, 23);
    cPanelLabelDuzenle.add(reverseColor);
    drawCross = new Checkbox("Kampanya");
    drawCross.setFont(new Font("Tahoma", Font.BOLD, 10));
    drawCross.setBounds(90, 90, 70, 23);

    cPanelLabelDuzenle.add(drawCross);

    initLabelPanel();

    cPanelLabelDuzenle.updateUI();
    initListeners();

    return cPanelLabelDuzenle;
  }

  private void initLabelPanel() {
    if (labelTasarla.getText() != null) {

      icerik.setText(labelTasarla.getText());
    }
    if (labelTasarla.getFont() != null) {
      icerik.setFont(labelTasarla.getFont());
      if (labelTasarla.getFont().getStyle() == 1) {
        selectedBoldButton();
      } else if (labelTasarla.getFont().getStyle() == 2) {
        selectedItalicButton();
      }
      String fontFamily = labelTasarla.getFont().getFamily();
      yazitipi.setSelectedItem(fontFamily);

      size.setValue(labelTasarla.getFont().getSize());
    }
    if (labelTasarla.getForeground() != null) {
      icerik.setForeground(labelTasarla.getForeground());
    }
    if (labelTasarla.getHeight() != 0) {
      labelHeight = pxToMm(metrics.getHeight());
    }
    if (labelTasarla.getWidth() != 0) {
      labelWidth = pxToMm(metrics.stringWidth(icerik.getText())) + 2;

    }
    if (labelTasarla.isOpaque()) {

      icerik.setBackground(labelTasarla.getBackground());

    }
    if (labelTasarla.getToolTipText() != null) {
      if (labelTasarla.getToolTipText().equals("kampanya")) {
        drawCross.setState(true);
        reverseColor.setEnabled(false);
      }
    }
    if (labelTasarla.getName().equals("pesinSatisFiyati")
        || labelTasarla.getName().equals("taksitliSatisFiyati")) {
      drawCross.setEnabled(false);
    }
  }

  private void initListeners() {

    drawCross.addItemListener(new ItemListener() {

      @Override
      public void itemStateChanged(ItemEvent arg0) {

        if (drawCross.getState() == true) {
          labelTasarla.setToolTipText("kampanya");
          reverseColor.setEnabled(false);
         
        } else {
          labelTasarla.setToolTipText(null);
          reverseColor.setEnabled(true);
         
        }

      }
    });
    reverseColor.addActionListener(new ActionListener() {

      @Override
      public void actionPerformed(ActionEvent arg0) {
        reverseColorClicked();
        uygulaClicked();

      }
    });
    yazitipi.addItemListener(new ItemListener() {

      @Override
      public void itemStateChanged(ItemEvent arg0) {

        yazitipiChanged();
        uygulaClicked();

      }
    });
    bold.addActionListener(new ActionListener() {

      @Override
      public void actionPerformed(ActionEvent e) {

        selectedBoldButton();
        uygulaClicked();
      }
    });
    italic.addActionListener(new ActionListener() {

      @Override
      public void actionPerformed(ActionEvent e) {

        selectedItalicButton();
        uygulaClicked();

      }
    });
    color.addActionListener(new ActionListener() {

      @Override
      public void actionPerformed(ActionEvent arg0) {

        colorChanged();
        uygulaClicked();

      }
    });

    icerik.addKeyListener(new KeyListener() {

      @Override
      public void keyTyped(KeyEvent arg0) {

      }

      @Override
      public void keyReleased(KeyEvent arg0) {

        labelWidth = pxToMm(metrics.stringWidth(icerik.getText())) + 2;
        labelHeight = pxToMm(metrics.getHeight() + 4);
        uygulaClicked();

      }

      @Override
      public void keyPressed(KeyEvent arg0) {

      }
    });
    size.addChangeListener(new ChangeListener() {

      @Override
      public void stateChanged(ChangeEvent arg0) {

        sizeChanged();

        uygulaClicked();

      }
    });

  }

 

  protected void reverseColorClicked() {
    if (labelTasarla.getName().equals("pesinSatisFiyati")
        || labelTasarla.getName().equals("taksitliSatisFiyati")) {
      drawCross.setEnabled(false);
      reverseColor.setEnabled(true);
    } else {
      if (drawCross.isEnabled()) {
        drawCross.setEnabled(false);
      } else {
        drawCross.setEnabled(true);
      }
    }

    Color foreGround = labelTasarla.getForeground();
    Color backGround = labelTasarla.getBackground();
    icerik.setBackground(foreGround);
    icerik.setForeground(backGround);
    labelTasarla.setOpaque(true);
    labelTasarla.setBackground(foreGround);
    labelTasarla.setForeground(backGround);
    color.setBackground(backGround);
    metrics = icerik.getFontMetrics(icerik.getFont());
    labelWidth = pxToMm(metrics.stringWidth(icerik.getText())) + 2;
    labelHeight = pxToMm(metrics.getHeight() + 4);
    final int mmXposition = labelTasarla.getX();
    final int mmYposition = labelTasarla.getY();
    final int mmWidth = mmToPx(labelWidth);
    final int mmHeight = mmToPx(labelHeight);
    labelTasarla.setText(icerik.getText());
    labelTasarla.setBounds(mmXposition, mmYposition, mmWidth, mmHeight);

    Component[] comp = onizleme.getComponents();
    for (int i = 0; i < comp.length; i++) {
      if (comp[i].getName().equals(labelTasarla.getName())) {

        onizleme.remove(comp[i]);
        onizleme.updateUI();
        break;
      }
    }
    gen.setValue(mmXposition);
    yuks.setValue(yuks.getMaximum() - mmYposition);

    onizleme.add(labelTasarla);

    onizleme.updateUI();

  }

  protected void uygulaClicked() {
    metrics = icerik.getFontMetrics(icerik.getFont());
    labelWidth = pxToMm(metrics.stringWidth(icerik.getText())) + 2;
    labelHeight = pxToMm(metrics.getHeight() + 4);
    final int mmXposition = labelTasarla.getX();
    final int mmYposition = labelTasarla.getY();
    final int mmWidth = mmToPx(labelWidth);
    final int mmHeight = mmToPx(labelHeight);
    labelTasarla.setText(icerik.getText());
    labelTasarla.setFont(icerik.getFont());
    labelTasarla.setForeground(icerik.getForeground());
    labelTasarla.setBounds(mmXposition, mmYposition, mmWidth, mmHeight);

    Component[] comp = onizleme.getComponents();
    for (int i = 0; i < comp.length; i++) {
      if (comp[i].getName().equals(labelTasarla.getName())) {

        onizleme.remove(comp[i]);

        break;
      }
    }
    gen.setValue(mmXposition);
    yuks.setValue(yuks.getMaximum() - mmYposition);

    onizleme.add(labelTasarla);

  }

  protected void colorChanged() {
    metrics = icerik.getFontMetrics(icerik.getFont());
    Color colorChoosed = JColorChooser.showDialog(cPanelLabelDuzenle,
        "Renk Se�", labelTasarla.getForeground());
    if (colorChoosed != null) {
      icerik.setForeground(colorChoosed);
      color.setBackground(colorChoosed);
      color.updateUI();
    }

  }

  protected void sizeChanged() {
    metrics = icerik.getFontMetrics(icerik.getFont());
    int punto = (int) size.getValue();
    int style = icerik.getFont().getStyle();
    String family = icerik.getFont().getFamily();
    icerik.setFont(new Font(family, style, punto));
    metrics = icerik.getFontMetrics(icerik.getFont());
    labelWidth = pxToMm(metrics.stringWidth(icerik.getText())) + 2;
    labelHeight = pxToMm(metrics.getHeight() + 4);

  }

  protected void yazitipiChanged() {
    metrics = icerik.getFontMetrics(icerik.getFont());
    int punto = icerik.getFont().getSize();
    int style = icerik.getFont().getStyle();
    String family = (String) yazitipi.getSelectedItem();
    icerik.setFont(new Font(family, style, punto));
    metrics = icerik.getFontMetrics(icerik.getFont());
    labelWidth = pxToMm(metrics.stringWidth(icerik.getText())) + 2;
    labelHeight = pxToMm(metrics.getHeight() + 4);

  }

  protected void selectedItalicButton() {
    metrics = icerik.getFontMetrics(icerik.getFont());
    Color color = italic.getBackground();
    String family = icerik.getFont().getFamily();
    int punto = icerik.getFont().getSize();
    int style = icerik.getFont().getStyle();
    if (color.equals(UIManager.getColor("Button.background"))) {
      if (bold.getBackground().equals(
          UIManager.getColor("Button.background"))) {
        icerik.setFont(new Font(family, style | Font.ITALIC, punto));
        italic.setBackground(Color.LIGHT_GRAY);
      } else {
        icerik.setFont(new Font(family, Font.BOLD | Font.ITALIC, punto));
        italic.setBackground(Color.LIGHT_GRAY);
      }

      italic.updateUI();
    } else {
      if (bold.getBackground().equals(
          UIManager.getColor("Button.background"))) {
        icerik.setFont(new Font(family, Font.PLAIN, punto));

        italic.setBackground(UIManager.getColor("Button.background"));
      } else {
        icerik.setFont(new Font(family, Font.BOLD, punto));
        italic.setBackground(UIManager.getColor("Button.background"));
      }
      italic.updateUI();
    }
    labelWidth = pxToMm(metrics.stringWidth(icerik.getText())) + 2;
    labelHeight = pxToMm(metrics.getHeight() + 4);

  }

  public void selectedBoldButton() {

    metrics = icerik.getFontMetrics(icerik.getFont());
    Color color = bold.getBackground();
    String family = icerik.getFont().getFamily();
    int punto = icerik.getFont().getSize();
    int style = icerik.getFont().getStyle();
    if (color.equals(UIManager.getColor("Button.background"))) {
      if (italic.getBackground().equals(
          UIManager.getColor("Button.background"))) {
        icerik.setFont(new Font(family, style | Font.BOLD, punto));
        bold.setBackground(Color.LIGHT_GRAY);
      } else {
        icerik.setFont(new Font(family, Font.ITALIC | Font.BOLD, punto));
        bold.setBackground(Color.LIGHT_GRAY);
      }

      bold.updateUI();
    } else {
      if (italic.getBackground().equals(
          UIManager.getColor("Button.background"))) {
        icerik.setFont(new Font(family, Font.PLAIN, punto));
        bold.setBackground(UIManager.getColor("Button.background"));
      } else {
        icerik.setFont(new Font(family, Font.ITALIC, punto));
        bold.setBackground(UIManager.getColor("Button.background"));
      }
      bold.updateUI();
    }
    labelWidth = pxToMm(metrics.stringWidth(icerik.getText())) + 2;
    labelHeight = pxToMm(metrics.getHeight() + 4);

  }

  public static int mmToPx(int mm) {

    double px1 = mm * 3.77;
    int px = doubleToInt(px1);

    return px;
  }

  public static int pxToMm(int px) {
    double mm1 = px / 3.77;
    int mm = doubleToInt(mm1);
    return mm;

  }

  private static int doubleToInt(double value) {

    String[] parts = (String.valueOf(value)).split("\\.");
    String splittedPart = parts[1].substring(0, 1);
    int parts1 = Integer.parseInt(splittedPart);
    int parts0 = Integer.parseInt(parts[0]);

    if (parts1 >= 5) {
      parts0 = parts0 + 1;
    }
    return parts0;
  }

}
TOP

Related Classes of service.LabelTasarimPaneli

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.