/*
* This file is part of the Illarion project.
*
* Copyright © 2015 - Illarion e.V.
*
* Illarion is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Illarion 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.
*/
package illarion.mapedit.tools.panel;
import illarion.mapedit.Lang;
import illarion.mapedit.resource.loaders.ImageLoader;
import illarion.mapedit.tools.ToolManager;
import illarion.mapedit.tools.panel.components.SongTable;
import org.pushingpixels.flamingo.api.common.icon.ResizableIcon;
import javax.annotation.Nonnull;
import javax.swing.*;
import java.awt.*;
/**
* @author Tim
* @author Fredrik K
*/
public class MusicPanel extends JPanel {
@Nonnull
private final JCheckBox delCheckBox;
@Nonnull
private final JRadioButton fillSelectedCheckbox;
@Nonnull
private final JRadioButton fillAreaCheckbox;
@Nonnull
private final SongTable songTable;
/**
* Default constructor
*/
public MusicPanel() {
setLayout(new BorderLayout());
songTable = new SongTable();
add(songTable, BorderLayout.CENTER);
JPanel northPanel = new JPanel(new GridLayout(0, 2));
delCheckBox = new JCheckBox();
fillSelectedCheckbox = new JRadioButton();
fillAreaCheckbox = new JRadioButton();
fillAreaCheckbox.setSelected(true);
ButtonGroup group = new ButtonGroup();
group.add(fillAreaCheckbox);
group.add(fillSelectedCheckbox);
ResizableIcon icon = ImageLoader.getResizableIcon("player_play");
icon.setDimension(new Dimension(ToolManager.ICON_SIZE, ToolManager.ICON_SIZE));
JButton playButton = new JButton(icon);
playButton.addActionListener(e -> songTable.playSelectedSong());
northPanel.add(new JLabel(Lang.getMsg("tools.FillSelected")));
northPanel.add(fillSelectedCheckbox);
northPanel.add(new JLabel(Lang.getMsg("tools.FillArea")));
northPanel.add(fillAreaCheckbox);
northPanel.add(new JLabel(Lang.getMsg("tools.MusicTool.Delete")));
northPanel.add(delCheckBox);
northPanel.add(new JLabel(Lang.getMsg("tools.MusicTool.Listen")));
northPanel.add(playButton);
add(northPanel, BorderLayout.NORTH);
}
/**
* Get selected musicID
*
* @return musicID or 0 if eraser is selected
*/
public int getMusicID() {
Integer musicID = 0;
if (!delCheckBox.isSelected()) {
musicID = songTable.getSelectedMusicID();
}
return musicID;
}
public boolean isFillSelected() {
return fillSelectedCheckbox.isSelected();
}
public boolean isFillArea() {
return fillAreaCheckbox.isSelected();
}
}