Package net.datacrow.console.views

Source Code of net.datacrow.console.views.ViewActionPanel

package net.datacrow.console.views;

import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JPanel;

import net.datacrow.console.ComponentFactory;
import net.datacrow.console.Layout;
import net.datacrow.core.DcRepository;
import net.datacrow.core.plugin.PluginHelper;
import net.datacrow.core.resources.DcResources;
import net.datacrow.core.security.SecuredUser;
import net.datacrow.core.security.SecurityCentre;
import net.datacrow.settings.DcSettings;

public class ViewActionPanel extends JPanel implements ActionListener {

    private static final FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
   
    protected JPanel panelActionsLeft = new JPanel();
    protected JPanel panelActionsRight = new JPanel();
   
    private JButton buttonSave;
    private JButton buttonClear;
    private JButton buttonCancel;
   
    private JButton buttonRemove;
    private JButton buttonAdd;
   
    private final View view;
   
    public ViewActionPanel(View view) {
        this.view = view;
        build();
    }
   
    @Override
    public void setEnabled(boolean enabled) {
        buttonClear.setEnabled(enabled);
        buttonRemove.setEnabled(enabled);
        buttonSave.setEnabled(enabled);
    }
   
    public void applySettings() {
        panelActionsLeft.setFont(DcSettings.getFont(DcRepository.Settings.stSystemFontNormal));
        panelActionsRight.setFont(DcSettings.getFont(DcRepository.Settings.stSystemFontNormal));
        buttonSave.setFont(DcSettings.getFont(DcRepository.Settings.stSystemFontNormal));
        buttonClear.setFont(DcSettings.getFont(DcRepository.Settings.stSystemFontNormal));
        buttonCancel.setFont(DcSettings.getFont(DcRepository.Settings.stSystemFontNormal));
        buttonRemove.setFont(DcSettings.getFont(DcRepository.Settings.stSystemFontNormal));
    }
   
    private void build() {
        panelActionsLeft.setLayout(layout);
        panelActionsRight.setLayout(layout);
   
        // Create the components
        buttonAdd = ComponentFactory.getButton(DcResources.getText("lblAdd"));
        buttonClear = ComponentFactory.getButton(DcResources.getText("lblClear"));
        buttonCancel = ComponentFactory.getButton(DcResources.getText("lblCancel"));
        buttonSave = ComponentFactory.getButton(DcResources.getText("lblSave"));
        buttonRemove = ComponentFactory.getButton(DcResources.getText("lblRemove"));
   
        buttonAdd.setToolTipText(DcResources.getText("tpAddRow"));
        buttonClear.setToolTipText(DcResources.getText("tpClear"));
        buttonCancel.setToolTipText(DcResources.getText("tpCancel"));
        buttonSave.setToolTipText(DcResources.getText("tpSaveChanges"));
        buttonRemove.setToolTipText(DcResources.getText("tpRemoveRow"));
   
        PluginHelper.addListener(buttonAdd, "AddRow", view.getModule().getIndex());
       
        buttonClear.addActionListener(this);
        buttonClear.setActionCommand("clear");
       
        buttonCancel.addActionListener(this);
        buttonCancel.setActionCommand("cancelTask");
       
        PluginHelper.addListener(buttonSave, "SaveAll", view.getModule().getIndex());
        PluginHelper.addListener(buttonRemove, "RemoveRow", view.getModule().getIndex());
   
        // Build the panel
        SecuredUser user = SecurityCentre.getInstance().getUser();
           
        if (user == null || user.isEditingAllowed(view.getModule()))
          panelActionsRight.add(buttonSave);
       
        buttonSave.setEnabled(user == null || user.isEditingAllowed(view.getModule()));
       
        if view.getType() == View._TYPE_INSERT &&
                (user == null || user.isEditingAllowed(view.getModule()))) {
            panelActionsLeft.add(buttonRemove);
            panelActionsLeft.add(buttonAdd);
        }
   
        for (Component c: view.getAdditionalActions())
            panelActionsLeft.add(c);
   
        if (view.getType() == View._TYPE_INSERT)
            panelActionsRight.add(buttonClear);
   
        if (user == null || user.isEditingAllowed(view.getModule()))
          panelActionsRight.add(buttonCancel);
       
        setLayout(Layout.getGBL());
        add(panelActionsLeft, Layout.getGBC(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.WEST,
            GridBagConstraints.NONE, new Insets(0, 5, 0, 5), 0, 0));
        add(panelActionsRight, Layout.getGBC(1, 0, 1, 1, 1.0, 1.0, GridBagConstraints.EAST,
            GridBagConstraints.NONE, new Insets(0, 5, 0, 5), 0, 0));
    }
   
    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("cancelTask"))
            view.cancelTask();
        else if (e.getActionCommand().equals("clear"))
            view.clear();
    }
}
TOP

Related Classes of net.datacrow.console.views.ViewActionPanel

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.