/******************************************************************************* * Copyright (c) 2016 Weasis Team and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Nicolas Roduit - initial API and implementation *******************************************************************************/ package org.weasis.acquire.explorer.gui.central; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JToggleButton; import org.weasis.acquire.explorer.core.bean.SeriesGroup; public class SerieButton extends JToggleButton implements ActionListener, SeriesDataListener, Comparable<SerieButton> { private static final long serialVersionUID = -2587964095510462601L; private final SeriesGroup seriesGroup; private final AcquireTabPanel panel; public SerieButton(SeriesGroup seriesGroup, AcquireTabPanel panel) { super(seriesGroup.getDisplayName()); this.seriesGroup = seriesGroup; seriesGroup.addLayerChangeListener(this); this.panel = panel; addActionListener(this); } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == this) { panel.setSelected(this); } } public SeriesGroup getSerie() { return seriesGroup; } @Override public void setText(String text) { super.setText(text); setToolTipText(text); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + seriesGroup.hashCode(); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; SerieButton other = (SerieButton) obj; return seriesGroup.equals(other.seriesGroup); } @Override public int compareTo(SerieButton o) { return getSerie().compareTo(o.getSerie()); } @Override public void handleSeriesChanged() { setText(seriesGroup.getDisplayName()); } }