/*
* Copyright (C) 2014 Shashank Tulsyan
*
* 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 neembuu.release1.ui.linkpanel;
import neembuu.swing.HiddenBorderButton;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JToggleButton;
import neembuu.release1.api.ui.ExpansionState;
import neembuu.release1.api.ui.linkpanel.Graph;
import neembuu.release1.api.ui.HeightProperty;
import neembuu.release1.api.ui.linkpanel.OpenableEUI;
import neembuu.release1.api.ui.linkpanel.Variants;
import neembuu.release1.api.ui.access.ChangeDownloadModeUIA;
import neembuu.release1.api.ui.access.CloseActionUIA;
import neembuu.release1.api.ui.access.ExpandActionUIA;
import neembuu.release1.api.ui.access.GraphUIA;
import neembuu.release1.api.ui.linkpanel.ProgressProvider;
import neembuu.release1.api.ui.access.ProgressUIA;
import neembuu.release1.api.ui.access.ProgressUI;
import neembuu.release1.api.ui.actions.ChangeDownloadModeAction;
import neembuu.release1.api.ui.actions.CloseAction;
import neembuu.release1.api.ui.actions.DeleteAction;
import neembuu.release1.api.ui.actions.ExpandAction;
import neembuu.release1.api.ui.actions.ConnectionActions;
import neembuu.release1.api.ui.actions.EditLinksAction;
import neembuu.release1.api.ui.actions.FileNameClickedAction;
import neembuu.release1.api.ui.actions.ForceDownloadAction;
import neembuu.release1.api.ui.actions.OpenAction;
import neembuu.release1.api.ui.actions.ReAddAction;
import neembuu.release1.api.ui.actions.SaveAction;
import neembuu.release1.api.ui.linkpanel.VariantSelector;
import neembuu.release1.ui.Colors;
import neembuu.release1.ui.Fonts;
import neembuu.release1.ui.HeightPropertyImpl;
import neembuu.release1.ui.MainPanel;
import neembuu.swing.TextBubbleBorder;
/**
*
* @author Shashank Tulsyan
*/
final class GenericLinkPanel extends javax.swing.JPanel {
private final TextBubbleBorder border;
private final int ht_smallest = 50;
private final int ht_medium = 80;
private final int pad_for_extra_progress_bar = 30;
private final int ht_tallest = 300;
private final RightControlsPanel rightControlsPanel =
RightControlsPanel.makeRightControlPanel();
private final FileIconPanel fileIconPanel = new FileIconPanel();
private Graph graph;
private ProgressProvider progress;
private Variants v;
private ExpandAction expandAction;
private DeleteAction deleteAction;
private ReAddAction reAddAction;
private ChangeDownloadModeAction changeDownloadModeAction;
private ConnectionActions connectionActions;
private EditLinksAction editLinksAction;
private FileNameClickedAction fnca;
private final String downloadFullFileToolTip = "<html>"
+ "<b>Download entire file mode</b><br/>"
+ "In this mode Neembuu tried to download<br/>"
+ "the entire file without slowing the download speed.<br/>"
+ "</html>";
final HeightProperty heightProperty = new HeightPropertyImpl();
/**
* Creates new form
*/
GenericLinkPanel() {
border = new TextBubbleBorder(Colors.BORDER , 4, 16, 0);
border.getBorderInsets(null).bottom = 8;
border.getBorderInsets(null).top = 8;
border.getBorderInsets(null).right = 1;
border.getBorderInsets(null).left = 1;
initComponents();
initHeight();
hiddenPaneInit();
overlayInit();
changeDownloadModeButton.setToolTipText(downloadFullFileToolTip);
fileNameLabel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
fileNameLabel.setFont(Fonts.getDefaultFont().deriveFont(Font.PLAIN).deriveFont(14f));//because
// filename can contain unicode characters
killConnectionButton.setEnabled(false);
variantSelectorButton.setBackground(Colors.BUTTON_TINT);
variantSelector = new VariantSelectorImpl(variantSelectorButton);
}
void init(Graph graph,ProgressProvider progress, Variants v1){
this.graph = graph; this.progress = progress; this.v = v1;
}
void initActions(
ExpandAction ea, OpenAction oa, CloseAction ca, DeleteAction da,
ReAddAction raa, SaveAction sa, EditLinksAction ela, ConnectionActions cona,
ChangeDownloadModeAction cdma, ForceDownloadAction fda, FileNameClickedAction fnca) {
this.expandAction = ea;
this.deleteAction = da;
this.reAddAction = raa;
this.editLinksAction = ela;
this.connectionActions = cona;
this.changeDownloadModeAction = cdma;
this.fnca = fnca;
rightControlsPanel.initActions(ea, sa, ca, fda);
fileIconPanel.setOpenAction(oa);
rightControlsPanel.forceDownloadButtonStateChanged();
}
void initializeName(String fileName){
fileNameLabel.setText(fileName);
}
/**
* 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() {
layeredPane = new javax.swing.JLayeredPane();
indefiniteProgress = new javax.swing.JLabel();
overlay = new javax.swing.JPanel();
editLinksButton = HiddenBorderButton.make(GenericLinkPanel.class,"/neembuu/release1/ui/images/edit_link.png", "/neembuu/release1/ui/images/edit_link_s.png", false);
rightOverlayElements = new javax.swing.JPanel();
delete = HiddenBorderButton.make(GenericLinkPanel.class,"/neembuu/release1/ui/images/delete.png", "/neembuu/release1/ui/images/delete_s.png", false);
reEnableButton = HiddenBorderButton.make(GenericLinkPanel.class,"/neembuu/release1/ui/images/small+.png", "/neembuu/release1/ui/images/small+_s.png", false);
actualContentsPanel = new javax.swing.JPanel();
vlcPane = getFileIconPanelWithButton();
fileNamePane = new javax.swing.JPanel();
fileNameLabel = new javax.swing.JLabel();
rightCtrlPane = rightControlsPanel.getPanel();
sizeAndProgressPane = new javax.swing.JPanel();
fileSizeLabel = new javax.swing.JLabel();
progressBarPanel = new javax.swing.JPanel();
progressPercetLabel = new javax.swing.JLabel();
sizeAndProgressPane_lower = new javax.swing.JPanel();
progressBarPanel_lower = new javax.swing.JPanel();
progressPercetLabel_lower = new javax.swing.JLabel();
variantSelectorButton = new javax.swing.JButton();
graphPanel = new javax.swing.JPanel();
hiddenStatsPane = new javax.swing.JPanel();
selectedConnectionLabel = new javax.swing.JLabel();
connectionControlPane = new javax.swing.JPanel();
previousConnectionButton = new javax.swing.JButton();
nextConnectionButton = new javax.swing.JButton();
killConnectionButton = new javax.swing.JButton();
changeDownloadModeButton = new javax.swing.JToggleButton();
setBackground(new java.awt.Color(255, 255, 255));
setBorder(border);
indefiniteProgress.setIcon(new javax.swing.ImageIcon(getClass().getResource("/neembuu/release1/ui/images/Animation.gif"))); // NOI18N
indefiniteProgress.setText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.indefiniteProgress.text")); // NOI18N
overlay.setBackground(Colors.OVERLAY);
overlay.setOpaque(false);
overlay.setPreferredSize(new java.awt.Dimension(40, 40));
editLinksButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/neembuu/release1/ui/images/edit_link.png"))); // NOI18N
editLinksButton.setText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.editLinksButton.text")); // NOI18N
editLinksButton.setToolTipText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.editLinksButton.toolTipText")); // NOI18N
editLinksButton.setContentAreaFilled(false);
editLinksButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
editLinksButtonActionPerformed(evt);
}
});
rightOverlayElements.setBackground(new java.awt.Color(255, 255, 255));
delete.setIcon(new javax.swing.ImageIcon(getClass().getResource("/neembuu/release1/ui/images/delete.png"))); // NOI18N
delete.setText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.delete.text")); // NOI18N
delete.setToolTipText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.delete.toolTipText")); // NOI18N
delete.setContentAreaFilled(false);
delete.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteActionPerformed(evt);
}
});
reEnableButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/neembuu/release1/ui/images/small+.png"))); // NOI18N
reEnableButton.setText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.reEnableButton.text")); // NOI18N
reEnableButton.setToolTipText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.reEnableButton.toolTipText")); // NOI18N
reEnableButton.setContentAreaFilled(false);
reEnableButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
reEnableButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout rightOverlayElementsLayout = new javax.swing.GroupLayout(rightOverlayElements);
rightOverlayElements.setLayout(rightOverlayElementsLayout);
rightOverlayElementsLayout.setHorizontalGroup(
rightOverlayElementsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(rightOverlayElementsLayout.createSequentialGroup()
.addGap(7, 7, 7)
.addComponent(delete, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(reEnableButton, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(36, Short.MAX_VALUE))
);
rightOverlayElementsLayout.setVerticalGroup(
rightOverlayElementsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(rightOverlayElementsLayout.createSequentialGroup()
.addGap(0, 0, 0)
.addGroup(rightOverlayElementsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(reEnableButton, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(delete, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 0, 0))
);
javax.swing.GroupLayout overlayLayout = new javax.swing.GroupLayout(overlay);
overlay.setLayout(overlayLayout);
overlayLayout.setHorizontalGroup(
overlayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, overlayLayout.createSequentialGroup()
.addGap(2, 2, 2)
.addComponent(editLinksButton, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 244, Short.MAX_VALUE)
.addComponent(rightOverlayElements, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
overlayLayout.setVerticalGroup(
overlayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(overlayLayout.createSequentialGroup()
.addGroup(overlayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(editLinksButton, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(rightOverlayElements, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 135, Short.MAX_VALUE))
);
actualContentsPanel.setBackground(new java.awt.Color(255, 255, 255));
vlcPane.setBackground(new java.awt.Color(255, 255, 255));
vlcPane.setToolTipText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.vlcPane.toolTipText")); // NOI18N
vlcPane.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
vlcPane.setPreferredSize(new java.awt.Dimension(32, 32));
javax.swing.GroupLayout vlcPaneLayout = new javax.swing.GroupLayout(vlcPane);
vlcPane.setLayout(vlcPaneLayout);
vlcPaneLayout.setHorizontalGroup(
vlcPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 32, Short.MAX_VALUE)
);
vlcPaneLayout.setVerticalGroup(
vlcPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 32, Short.MAX_VALUE)
);
fileNamePane.setBackground(new java.awt.Color(255, 255, 255));
fileNamePane.setFocusable(false);
fileNamePane.setPreferredSize(new java.awt.Dimension(200, 40));
fileNamePane.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
fileNamePaneMouseClicked(evt);
}
public void mouseEntered(java.awt.event.MouseEvent evt) {
fileNamePaneMouseEntered(evt);
}
public void mouseExited(java.awt.event.MouseEvent evt) {
fileNamePaneMouseExited(evt);
}
});
fileNameLabel.setBackground(new java.awt.Color(255, 255, 255));
fileNameLabel.setText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.fileNameLabel.text")); // NOI18N
fileNameLabel.setMaximumSize(new java.awt.Dimension(152, 32));
fileNameLabel.setMinimumSize(new java.awt.Dimension(152, 32));
fileNameLabel.setPreferredSize(new java.awt.Dimension(152, 32));
javax.swing.GroupLayout fileNamePaneLayout = new javax.swing.GroupLayout(fileNamePane);
fileNamePane.setLayout(fileNamePaneLayout);
fileNamePaneLayout.setHorizontalGroup(
fileNamePaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(fileNamePaneLayout.createSequentialGroup()
.addGap(5, 5, 5)
.addComponent(fileNameLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(0, 0, 0))
);
fileNamePaneLayout.setVerticalGroup(
fileNamePaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(fileNamePaneLayout.createSequentialGroup()
.addGap(0, 0, 0)
.addComponent(fileNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
rightCtrlPane.setBackground(new java.awt.Color(255, 255, 255));
rightCtrlPane.setMinimumSize(new java.awt.Dimension(56, 32));
rightCtrlPane.setName(""); // NOI18N
rightCtrlPane.setPreferredSize(new java.awt.Dimension(74, 32));
rightCtrlPane.setLayout(null);
sizeAndProgressPane.setBackground(new java.awt.Color(255, 255, 255));
sizeAndProgressPane.setMinimumSize(new java.awt.Dimension(100, 30));
sizeAndProgressPane.setPreferredSize(new java.awt.Dimension(300, 30));
fileSizeLabel.setBackground(new java.awt.Color(255, 255, 255));
fileSizeLabel.setFont(Fonts.MyriadPro.deriveFont(15f));
fileSizeLabel.setText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.fileSizeLabel.text")); // NOI18N
javax.swing.GroupLayout progressBarPanelLayout = new javax.swing.GroupLayout(progressBarPanel);
progressBarPanel.setLayout(progressBarPanelLayout);
progressBarPanelLayout.setHorizontalGroup(
progressBarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
progressBarPanelLayout.setVerticalGroup(
progressBarPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
progressPercetLabel.setFont(Fonts.MyriadPro.deriveFont(18f)
);
progressPercetLabel.setText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.progressPercetLabel.text")); // NOI18N
javax.swing.GroupLayout sizeAndProgressPaneLayout = new javax.swing.GroupLayout(sizeAndProgressPane);
sizeAndProgressPane.setLayout(sizeAndProgressPaneLayout);
sizeAndProgressPaneLayout.setHorizontalGroup(
sizeAndProgressPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(sizeAndProgressPaneLayout.createSequentialGroup()
.addGap(4, 4, 4)
.addComponent(fileSizeLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(progressBarPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(progressPercetLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE))
);
sizeAndProgressPaneLayout.setVerticalGroup(
sizeAndProgressPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(fileSizeLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 30, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, sizeAndProgressPaneLayout.createSequentialGroup()
.addGap(2, 2, 2)
.addComponent(progressBarPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(2, 2, 2))
.addComponent(progressPercetLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
sizeAndProgressPane_lower.setBackground(new java.awt.Color(255, 255, 255));
sizeAndProgressPane_lower.setMinimumSize(new java.awt.Dimension(100, 30));
sizeAndProgressPane_lower.setPreferredSize(new java.awt.Dimension(300, 30));
javax.swing.GroupLayout progressBarPanel_lowerLayout = new javax.swing.GroupLayout(progressBarPanel_lower);
progressBarPanel_lower.setLayout(progressBarPanel_lowerLayout);
progressBarPanel_lowerLayout.setHorizontalGroup(
progressBarPanel_lowerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
progressBarPanel_lowerLayout.setVerticalGroup(
progressBarPanel_lowerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
progressPercetLabel_lower.setFont(Fonts.MyriadPro.deriveFont(18f)
);
progressPercetLabel_lower.setText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.progressPercetLabel_lower.text")); // NOI18N
variantSelectorButton.setFont(Fonts.MyriadPro.deriveFont(15f));
variantSelectorButton.setMargin(new java.awt.Insets(2, -30, 2, -30));
variantSelectorButton.setMinimumSize(new java.awt.Dimension(30, 16));
variantSelectorButton.setPreferredSize(new java.awt.Dimension(45, 16));
variantSelectorButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
comboBoxActionPerformed(evt);
}
});
javax.swing.GroupLayout sizeAndProgressPane_lowerLayout = new javax.swing.GroupLayout(sizeAndProgressPane_lower);
sizeAndProgressPane_lower.setLayout(sizeAndProgressPane_lowerLayout);
sizeAndProgressPane_lowerLayout.setHorizontalGroup(
sizeAndProgressPane_lowerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(sizeAndProgressPane_lowerLayout.createSequentialGroup()
.addGap(0, 0, 0)
.addComponent(variantSelectorButton, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(2, 2, 2)
.addComponent(progressBarPanel_lower, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(progressPercetLabel_lower, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE))
);
sizeAndProgressPane_lowerLayout.setVerticalGroup(
sizeAndProgressPane_lowerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, sizeAndProgressPane_lowerLayout.createSequentialGroup()
.addGap(2, 2, 2)
.addComponent(progressBarPanel_lower, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(2, 2, 2))
.addComponent(progressPercetLabel_lower, javax.swing.GroupLayout.DEFAULT_SIZE, 30, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, sizeAndProgressPane_lowerLayout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(variantSelectorButton, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
);
graphPanel.setPreferredSize(new java.awt.Dimension(364, 100));
javax.swing.GroupLayout graphPanelLayout = new javax.swing.GroupLayout(graphPanel);
graphPanel.setLayout(graphPanelLayout);
graphPanelLayout.setHorizontalGroup(
graphPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
graphPanelLayout.setVerticalGroup(
graphPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 37, Short.MAX_VALUE)
);
hiddenStatsPane.setBackground(new java.awt.Color(255, 255, 255));
hiddenStatsPane.setMaximumSize(new java.awt.Dimension(32767, 16));
selectedConnectionLabel.setText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.selectedConnectionLabel.text")); // NOI18N
javax.swing.GroupLayout hiddenStatsPaneLayout = new javax.swing.GroupLayout(hiddenStatsPane);
hiddenStatsPane.setLayout(hiddenStatsPaneLayout);
hiddenStatsPaneLayout.setHorizontalGroup(
hiddenStatsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, hiddenStatsPaneLayout.createSequentialGroup()
.addContainerGap()
.addComponent(selectedConnectionLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 354, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
hiddenStatsPaneLayout.setVerticalGroup(
hiddenStatsPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, hiddenStatsPaneLayout.createSequentialGroup()
.addGap(0, 0, 0)
.addComponent(selectedConnectionLabel))
);
connectionControlPane.setBackground(new java.awt.Color(255, 255, 255));
previousConnectionButton.setFont(Fonts.MyriadPro.deriveFont(10f).deriveFont(Font.BOLD)
);
previousConnectionButton.setText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.previousConnectionButton.text")); // NOI18N
previousConnectionButton.setToolTipText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.previousConnectionButton.toolTipText")); // NOI18N
previousConnectionButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
previousConnectionButton.setPreferredSize(new java.awt.Dimension(79, 18));
previousConnectionButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
previousConnectionButtonActionPerformed(evt);
}
});
nextConnectionButton.setFont(Fonts.MyriadPro.deriveFont(10f).deriveFont(Font.BOLD)
);
nextConnectionButton.setText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.nextConnectionButton.text")); // NOI18N
nextConnectionButton.setToolTipText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.nextConnectionButton.toolTipText")); // NOI18N
nextConnectionButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
nextConnectionButton.setPreferredSize(new java.awt.Dimension(79, 18));
nextConnectionButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
nextConnectionButtonActionPerformed(evt);
}
});
killConnectionButton.setFont(Fonts.MyriadPro.deriveFont(10f));
killConnectionButton.setText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.killConnectionButton.text")); // NOI18N
killConnectionButton.setToolTipText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.killConnectionButton.toolTipText")); // NOI18N
killConnectionButton.setMargin(new java.awt.Insets(2, 2, 2, 2));
killConnectionButton.setPreferredSize(new java.awt.Dimension(79, 18));
killConnectionButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
killConnectionButtonActionPerformed(evt);
}
});
changeDownloadModeButton.setBackground(Colors.PROGRESS_BAR_FILL_BUFFER);
changeDownloadModeButton.setFont(Fonts.MyriadPro.deriveFont(10f));
changeDownloadModeButton.setText(org.openide.util.NbBundle.getMessage(GenericLinkPanel.class, "GenericLinkPanel.changeDownloadModeButton.text")); // NOI18N
changeDownloadModeButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
changeDownloadModeButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout connectionControlPaneLayout = new javax.swing.GroupLayout(connectionControlPane);
connectionControlPane.setLayout(connectionControlPaneLayout);
connectionControlPaneLayout.setHorizontalGroup(
connectionControlPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(connectionControlPaneLayout.createSequentialGroup()
.addContainerGap()
.addComponent(previousConnectionButton, javax.swing.GroupLayout.PREFERRED_SIZE, 1, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(nextConnectionButton, javax.swing.GroupLayout.PREFERRED_SIZE, 1, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(killConnectionButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(changeDownloadModeButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
connectionControlPaneLayout.setVerticalGroup(
connectionControlPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(connectionControlPaneLayout.createSequentialGroup()
.addGap(2, 2, 2)
.addGroup(connectionControlPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(previousConnectionButton, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(nextConnectionButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(killConnectionButton, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(changeDownloadModeButton, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(2, 2, 2))
);
javax.swing.GroupLayout actualContentsPanelLayout = new javax.swing.GroupLayout(actualContentsPanel);
actualContentsPanel.setLayout(actualContentsPanelLayout);
actualContentsPanelLayout.setHorizontalGroup(
actualContentsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(actualContentsPanelLayout.createSequentialGroup()
.addGap(0, 0, 0)
.addGroup(actualContentsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(graphPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 391, Short.MAX_VALUE)
.addComponent(connectionControlPane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(hiddenStatsPane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(actualContentsPanelLayout.createSequentialGroup()
.addGap(2, 2, 2)
.addGroup(actualContentsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(actualContentsPanelLayout.createSequentialGroup()
.addComponent(vlcPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(6, 6, 6)
.addComponent(fileNamePane, javax.swing.GroupLayout.DEFAULT_SIZE, 265, Short.MAX_VALUE)
.addGap(10, 10, 10)
.addComponent(rightCtrlPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 2, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(sizeAndProgressPane, javax.swing.GroupLayout.DEFAULT_SIZE, 389, Short.MAX_VALUE)
.addComponent(sizeAndProgressPane_lower, javax.swing.GroupLayout.DEFAULT_SIZE, 389, Short.MAX_VALUE))))
.addContainerGap())
);
actualContentsPanelLayout.setVerticalGroup(
actualContentsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(actualContentsPanelLayout.createSequentialGroup()
.addGap(0, 0, 0)
.addGroup(actualContentsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(actualContentsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(fileNamePane, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(vlcPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(rightCtrlPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 0, 0)
.addComponent(sizeAndProgressPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0)
.addComponent(sizeAndProgressPane_lower, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0)
.addComponent(graphPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 37, Short.MAX_VALUE)
.addGap(0, 0, 0)
.addComponent(hiddenStatsPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0)
.addComponent(connectionControlPane, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0))
);
javax.swing.GroupLayout layeredPaneLayout = new javax.swing.GroupLayout(layeredPane);
layeredPane.setLayout(layeredPaneLayout);
layeredPaneLayout.setHorizontalGroup(
layeredPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layeredPaneLayout.createSequentialGroup()
.addGap(4, 4, 4)
.addComponent(actualContentsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(10, 10, 10))
.addGroup(layeredPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layeredPaneLayout.createSequentialGroup()
.addGap(4, 4, 4)
.addComponent(overlay, javax.swing.GroupLayout.DEFAULT_SIZE, 391, Short.MAX_VALUE)
.addGap(10, 10, 10)))
.addGroup(layeredPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layeredPaneLayout.createSequentialGroup()
.addContainerGap(1, Short.MAX_VALUE)
.addComponent(indefiniteProgress)
.addContainerGap(1, Short.MAX_VALUE)))
);
layeredPaneLayout.setVerticalGroup(
layeredPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layeredPaneLayout.createSequentialGroup()
.addGap(0, 0, 0)
.addComponent(actualContentsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(0, 0, 0))
.addGroup(layeredPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layeredPaneLayout.createSequentialGroup()
.addGap(0, 0, 0)
.addComponent(overlay, javax.swing.GroupLayout.DEFAULT_SIZE, 167, Short.MAX_VALUE)
.addGap(0, 0, 0)))
.addGroup(layeredPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layeredPaneLayout.createSequentialGroup()
.addContainerGap(1, Short.MAX_VALUE)
.addComponent(indefiniteProgress)
.addContainerGap(1, Short.MAX_VALUE)))
);
layeredPane.setLayer(indefiniteProgress, javax.swing.JLayeredPane.DEFAULT_LAYER);
layeredPane.setLayer(overlay, javax.swing.JLayeredPane.DEFAULT_LAYER);
layeredPane.setLayer(actualContentsPanel, javax.swing.JLayeredPane.DEFAULT_LAYER);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(2, 2, 2)
.addComponent(layeredPane)
.addGap(0, 0, 0))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(layeredPane, javax.swing.GroupLayout.Alignment.TRAILING)
);
}// </editor-fold>//GEN-END:initComponents
private void killConnectionButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_killConnectionButtonActionPerformed
connectionActions.kill(evt);
}//GEN-LAST:event_killConnectionButtonActionPerformed
private void nextConnectionButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nextConnectionButtonActionPerformed
connectionActions.next(evt);
}//GEN-LAST:event_nextConnectionButtonActionPerformed
private void changeDownloadModeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_changeDownloadModeButtonActionPerformed
changeDownloadModeAction.actionPerformed();
}//GEN-LAST:event_changeDownloadModeButtonActionPerformed
private void previousConnectionButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_previousConnectionButtonActionPerformed
connectionActions.previous(evt);
}//GEN-LAST:event_previousConnectionButtonActionPerformed
private void deleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteActionPerformed
deleteAction.actionPerformed();
}//GEN-LAST:event_deleteActionPerformed
private void reEnableButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_reEnableButtonActionPerformed
reAddAction.actionPerformed(true);
}//GEN-LAST:event_reEnableButtonActionPerformed
private void comboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboBoxActionPerformed
variantSelector.actionPerformed();
}//GEN-LAST:event_comboBoxActionPerformed
private void editLinksButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editLinksButtonActionPerformed
editLinksAction.actionPerformed();
}//GEN-LAST:event_editLinksButtonActionPerformed
private Color oldColor = Color.BLACK;
private void fileNamePaneMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fileNamePaneMouseEntered
oldColor = fileNameLabel.getForeground();
fileNameLabel.setForeground(Colors.PROGRESS_BAR_FILL_ACTIVE);
}//GEN-LAST:event_fileNamePaneMouseEntered
private void fileNamePaneMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fileNamePaneMouseExited
fileNameLabel.setForeground(oldColor==null?Color.BLACK:oldColor);
}//GEN-LAST:event_fileNamePaneMouseExited
private void fileNamePaneMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fileNamePaneMouseClicked
fnca.actionPerformed();
}//GEN-LAST:event_fileNamePaneMouseClicked
private JPanel getFileIconPanelWithButton(){
return fileIconPanel.getJPanel();
}
private void initHeight(){
sizeAndProgressPane.setVisible(false);
sizeAndProgressPane_lower.setVisible(false);
graphPanel.setVisible(false);
hiddenStatsPane.setVisible(false);
connectionControlPane.setVisible(false);
heightProperty.setValue(ht_smallest);
}
private void overlayInit(){
indefiniteProgress.setVisible(false);
overlay.setVisible(false);
delete.setVisible(false);
editLinksButton.setVisible(false);
reEnableButton.setVisible(false);
javax.swing.GroupLayout layout = (javax.swing.GroupLayout)rightOverlayElements.getLayout();
layout.setHonorsVisibility(delete, Boolean.FALSE);
layout.setHonorsVisibility(reEnableButton, Boolean.FALSE);
MouseAdapter ma = new MouseAdapter() {
@Override public void mouseEntered(MouseEvent e) {
delete.setVisible(true);
reEnableButton.setVisible(true);
editLinksButton.setVisible(true);
}
@Override public void mouseExited(MouseEvent e) {
delete.setVisible(false);
reEnableButton.setVisible(false);
editLinksButton.setVisible(false);
}
};
overlay.addMouseListener(ma);
delete.addMouseListener(ma);
reEnableButton.addMouseListener(ma);
editLinksButton.addMouseListener(ma);
rightOverlayElements.addMouseListener(ma);
}
private void hiddenPaneInit(){
javax.swing.GroupLayout layout = (javax.swing.GroupLayout)hiddenStatsPane.getLayout();
layout.setHonorsVisibility(selectedConnectionLabel, Boolean.FALSE);
nextConnectionButton.setBackground(Colors.BUTTON_TINT);
previousConnectionButton.setBackground(Colors.BUTTON_TINT);
//linkEditButton.setBackground(Colors.BUTTON_TINT);
killConnectionButton.setBackground(Colors.BUTTON_TINT);
MouseAdapter ma = new MouseAdapter() {
@Override public void mouseEntered(MouseEvent e) {
String s = progress.progress().getSelectedRangeTooltip();
if(s==null){s="No Connection is selected";}
selectedConnectionLabel.setText(s.replace("\n", " ").replace("<br/>", " "));
selectedConnectionLabel.setVisible(true);
}
@Override public void mouseMoved(MouseEvent e) { mouseEntered(e); }
@Override public void mouseExited(MouseEvent e) {
selectedConnectionLabel.setVisible(false);
}
};
hiddenStatsPane.addMouseListener(ma);
ma.mouseExited(null);
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPanel actualContentsPanel;
private javax.swing.JToggleButton changeDownloadModeButton;
private javax.swing.JPanel connectionControlPane;
private javax.swing.JButton delete;
private javax.swing.JButton editLinksButton;
private javax.swing.JLabel fileNameLabel;
private javax.swing.JPanel fileNamePane;
private javax.swing.JLabel fileSizeLabel;
private javax.swing.JPanel graphPanel;
private javax.swing.JPanel hiddenStatsPane;
private javax.swing.JLabel indefiniteProgress;
private javax.swing.JButton killConnectionButton;
private javax.swing.JLayeredPane layeredPane;
private javax.swing.JButton nextConnectionButton;
private javax.swing.JPanel overlay;
private javax.swing.JButton previousConnectionButton;
private javax.swing.JPanel progressBarPanel;
private javax.swing.JPanel progressBarPanel_lower;
private javax.swing.JLabel progressPercetLabel;
private javax.swing.JLabel progressPercetLabel_lower;
private javax.swing.JButton reEnableButton;
private javax.swing.JPanel rightCtrlPane;
private javax.swing.JPanel rightOverlayElements;
private javax.swing.JLabel selectedConnectionLabel;
private javax.swing.JPanel sizeAndProgressPane;
private javax.swing.JPanel sizeAndProgressPane_lower;
private javax.swing.JButton variantSelectorButton;
private javax.swing.JPanel vlcPane;
// End of variables declaration//GEN-END:variables
final VariantSelector variantSelector;
final ProgressUIA progressUIA = new ProgressUIA() {
@Override public JComponent saveButton() { return rightControlsPanel.getSaveBtn(); }
@Override public ExpansionState getExpansionState() {return expandAction.getExpansionState(); }
@Override public JButton killConnectionButton() { return killConnectionButton;}
@Override public ProgressUI overallProgressUI(){ return overall;}
@Override public ProgressUI variantProgressUI() { return split;}
@Override public VariantSelector variantSelector() { return variantSelector;}};
final GraphUIA graphUIA = new GraphUIA() {
@Override public JPanel graphPanel() {return graphPanel;}
@Override public ExpansionState getExpansionState() {return expandAction.getExpansionState();} };
final ChangeDownloadModeUIA changeDownloadModeUIA = new ChangeDownloadModeUIA() {
@Override public JToggleButton changeDownloadModeButton() { return changeDownloadModeButton; }
@Override public void repaintProgressBar() {progress.progress().repaint(); } };
final CloseActionUIA closeActionUIA = new CloseActionUIA() {
@Override public void saveButton_reset(){ rightControlsPanel.getSaveBtn().setVisible(false);}
@Override public void overlay_setVisible(boolean show) { overlay.setVisible(show); }
@Override public void indefiniteOverlay(boolean show) {indefiniteProgress.setVisible(show);}
@Override public void border_setColor(Color c) {border.setColor(c);}
@Override public JPanel rightControlsPanel() { return rightCtrlPane; }
@Override public JLabel fileNameLabel() { return fileNameLabel; }
@Override public OpenButton openButton() { return openButton; }
@Override public void contract() { expandAction.setExpansionState(ExpansionState.Contracted); }
@Override public void repaint() { GenericLinkPanel.this.repaint(); }
@Override public JLabel fileSizeLabel(){return fileSizeLabel;} };
final ExpandActionUIA expandActionUIA = new ExpandActionUIA() {
@Override public JPanel connectionControlPane() { return connectionControlPane; }
@Override public JPanel graphPanel() { return graphPanel; }
@Override public void setVisibleProgress(boolean b) { sizeAndProgressPane.setVisible(b); }
@Override public void setVariantChooser(boolean b) { variantSelectorButton.setVisible(b); }
@Override public void setVisibleFileSize(boolean b) { fileSizeLabel.setVisible(b); }
@Override public JPanel hiddenStatsPane() { return hiddenStatsPane; }
@Override public void initGraph(boolean findFirst) { graph.initGraph(null, findFirst); }
@Override public void initVariants() { v.init(); }
@Override public short ht_smallest() { return ht_smallest; }
@Override public short ht_medium() { return (short)(ht_medium + extraPaddingIfRequired()); }
@Override public short ht_tallest() { return (short)(ht_tallest + extraPaddingIfRequired()); }
@Override public HeightProperty getHeight() { return heightProperty; }
@Override public void setVisibleVariantProgress(boolean b){ sizeAndProgressPane_lower.setVisible(b);}};
final CloseActionUIA.OpenButton openButton = new CloseActionUIA.OpenButton() {
@Override public void setVisible(boolean v) { fileIconPanel.setVisible(v); }
@Override public void setIcon_silent(Icon bw) { fileIconPanel.getOpenButton().setIcon_bw(bw);}
@Override public void setIcon_active(Icon clr) {fileIconPanel.getOpenButton().setIcon_clr(clr);}
@Override public String getCaption() { return fileIconPanel.getCaption(); }
@Override public void setCaption(String caption) { fileIconPanel.setCaption(caption); } };
final ProgressUI split = new ProgressUI() {
@Override public JLabel progressPercentLabel() {return progressPercetLabel_lower; }
@Override public JPanel progressBarPanel() { return progressBarPanel_lower;}};
final ProgressUI overall = new ProgressUI() {
@Override public JLabel progressPercentLabel() { return progressPercetLabel;}
@Override public JPanel progressBarPanel() { return progressBarPanel;} };
final OpenableEUI openableEUI = new OpenableEUI() {
@Override public JComponent getJComponent() { return GenericLinkPanel.this; }
@Override public HeightProperty heightProperty() { return heightProperty; }
@Override public void open(){ reAddAction.actionPerformed(true); }
};
private short extraPaddingIfRequired(){
if(sizeAndProgressPane.isVisible() && sizeAndProgressPane_lower.isVisible())
return pad_for_extra_progress_bar;
return 0;
}
}