Skip to content
Snippets Groups Projects
MakeBlockXYPlotterProperty.java 2.68 KiB
Newer Older
  • Learn to ignore specific revisions
  • Sven Jung's avatar
    Sven Jung committed
    /**
     * This file is part of LibLaserCut.
     * Copyright (C) 2011 - 2014 Thomas Oster <mail@thomas-oster.de>
     *
     * LibLaserCut is free software: you can redistribute it and/or modify
     * it under the terms of the GNU Lesser General Public License as published by
     * the Free Software Foundation, either version 3 of the License, or
     * (at your option) any later version.
     *
     * LibLaserCut 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 Lesser General Public License for more details.
     *
     * You should have received a copy of the GNU Lesser General Public License
     * along with LibLaserCut. If not, see <http://www.gnu.org/licenses/>.
     *
     **/
    
    /**
     * Author: Sven Jung <sven.jung@rwth-aachen.de>
    
    Sven Jung's avatar
    Sven Jung committed
    
    
    package com.t_oster.liblasercut.drivers;
    
    import com.t_oster.liblasercut.PowerSpeedFocusFrequencyProperty;
    import java.util.Arrays;
    import java.util.LinkedList;
    
    /**
     *
     * @author Sven
     */
    public class MakeBlockXYPlotterProperty extends PowerSpeedFocusFrequencyProperty
    {
    
      private boolean showPowerAndSpeed;
    
      
      public MakeBlockXYPlotterProperty(boolean showPowerAndSpeed) {
        this.showPowerAndSpeed = showPowerAndSpeed;
      }
      
      public MakeBlockXYPlotterProperty() {
        this(false);
      }
      
      @Override
      public String[] getPropertyKeys()
      {
        LinkedList<String> result = new LinkedList<String>();
        result.addAll(Arrays.asList(super.getPropertyKeys()));
        result.remove("focus");
        result.remove("frequency");
        
        if(!showPowerAndSpeed) {
          result.remove("power");
          result.remove("speed");
        }
        
        return result.toArray(new String[0]);
      }
    
      @Override
      public Object getProperty(String name)
      {
        return super.getProperty(name);
      }
    
      @Override
      public void setProperty(String name, Object value)
      {
        super.setProperty(name, value);
      }
    
      @Override
      public MakeBlockXYPlotterProperty clone()
      {
        MakeBlockXYPlotterProperty result = new MakeBlockXYPlotterProperty();
        for (String s:this.getPropertyKeys())
        {
          result.setProperty(s, this.getProperty(s));
        }
        return result;
      }
    
        @Override
        public boolean equals(Object obj) {
            if (obj == null) {
                return false;
            }
            if (getClass() != obj.getClass()) {
                return false;
            }
            final MakeBlockXYPlotterProperty other = (MakeBlockXYPlotterProperty) obj;
            if (this.showPowerAndSpeed != other.showPowerAndSpeed) {
                return false;
            }
            return super.equals(other);
        }
    
      @Override
      public int hashCode()
      {
        int hash = 7;
        hash = 59 * hash + (this.showPowerAndSpeed ? 1 : 0);
        return hash;
      }
    }