All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jets3t.apps.cockpitlite.ToggleAclDialog Maven / Gradle / Ivy

Go to download

Toolkit for Amazon S3, Amazon CloudFront, and Google Storage Service.

There is a newer version: 0.9.4
Show newest version
/*
 * jets3t : Java Extra-Tasty S3 Toolkit (for Amazon S3 online storage service)
 * This is a java.net project, see https://jets3t.dev.java.net/
 * 
 * Copyright 2007 James Murty
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License. 
 */
package org.jets3t.apps.cockpitlite;

import java.awt.Frame;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Properties;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.LookAndFeel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jets3t.gui.HyperlinkActivatedListener;
import org.jets3t.gui.JHtmlLabel;
import org.jets3t.gui.skins.SkinsFactory;

/**
 * Dialog for the user to toggle ACL settings of an object to/from public/private.
 * 
 * @author James Murty
 */
public class ToggleAclDialog extends JDialog implements ActionListener {
    private static final Log log = LogFactory.getLog(ToggleAclDialog.class);
    
    private Properties applicationProperties = null;
    private boolean isPublicObject = false;

    private HyperlinkActivatedListener hyperlinkListener = null;
    private SkinsFactory skinsFactory = null;
    
    private final Insets insetsZero = new Insets(0, 0, 0, 0);
    private final Insets insetsDefault = new Insets(3, 5, 3, 5);
    
    private JRadioButton privateRadioButton = null;
    private JRadioButton publicRadioButton = null;

    
    public ToggleAclDialog(Frame ownerFrame, boolean isPublicObject,
        HyperlinkActivatedListener hyperlinkListener, Properties applicationProperties) 
    {
        super(ownerFrame, "Toggle privacy settings", true);
        this.hyperlinkListener = hyperlinkListener;
        this.applicationProperties = applicationProperties;
        this.isPublicObject = isPublicObject;
        initGui();
    }
    
    public ToggleAclDialog(JDialog ownerDialog, boolean isPublicObject,
        HyperlinkActivatedListener hyperlinkListener, Properties applicationProperties) 
    {
        super(ownerDialog, "Change privacy", true);
        this.hyperlinkListener = hyperlinkListener;
        this.applicationProperties = applicationProperties;
        this.isPublicObject = isPublicObject;
        initGui();
    }
    
    public boolean isPublicAclSet() {
        return publicRadioButton.isSelected();
    }
    
    /**
     * Initialises all GUI elements.
     */
    private void initGui() {
        // Initialise skins factory. 
        skinsFactory = SkinsFactory.getInstance(applicationProperties); 
        
        // Set Skinned Look and Feel.
        LookAndFeel lookAndFeel = skinsFactory.createSkinnedMetalTheme("SkinnedLookAndFeel");        
        try {
            UIManager.setLookAndFeel(lookAndFeel);
        } catch (UnsupportedLookAndFeelException e) {
            log.error("Unable to set skinned LookAndFeel", e);
        }    	
    	
        this.setResizable(false);
        this.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);

        JHtmlLabel messageLabel = skinsFactory
        	.createSkinnedJHtmlLabel("ToggleAclDialogMessage", hyperlinkListener);
        messageLabel.setText("File privacy setting:");
        messageLabel.setHorizontalAlignment(JLabel.CENTER);
        
        privateRadioButton = skinsFactory.createSkinnedJRadioButton("ToggleAclDialogPrivateRadioButton");
        privateRadioButton.setText("Private file");
        publicRadioButton = skinsFactory.createSkinnedJRadioButton("ToggleAclDialogPublicRadioButton");
        publicRadioButton.setText("Public file");
        ButtonGroup buttonGroup = new ButtonGroup();
        buttonGroup.add(privateRadioButton);
        buttonGroup.add(publicRadioButton);
        
        publicRadioButton.setSelected(isPublicObject);
        privateRadioButton.setSelected(!isPublicObject);

        JButton okButton = skinsFactory.createSkinnedJButton("ToggleAclDialogOkButton"); 
        okButton.setName("OK");
        okButton.setText("OK");
        okButton.addActionListener(this);
        this.getRootPane().setDefaultButton(okButton);

        JPanel buttonsPanel = skinsFactory.createSkinnedJPanel("ToggleAclDialogButtonsPanel");
        buttonsPanel.setLayout(new GridBagLayout());
        buttonsPanel.add(privateRadioButton, new GridBagConstraints(0, 0, 
            1, 1, 1, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, insetsDefault, 0, 0));
        buttonsPanel.add(publicRadioButton, new GridBagConstraints(1, 0, 
            1, 1, 1, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, insetsDefault, 0, 0));
        buttonsPanel.add(okButton, new GridBagConstraints(0, 1, 
            2, 1, 1, 0, GridBagConstraints.CENTER, GridBagConstraints.NONE, insetsZero, 0, 0));
        
        int row = 0;
        this.getContentPane().setLayout(new GridBagLayout());
        this.getContentPane().add(messageLabel, new GridBagConstraints(0, row++, 
            1, 1, 1, 0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, insetsDefault, 0, 0));
        this.getContentPane().add(buttonsPanel, new GridBagConstraints(0, row++, 
            1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, insetsDefault, 0, 0));
        
        this.pack();
        this.setLocationRelativeTo(this.getOwner());
    }
    
    public void actionPerformed(ActionEvent e) {
        if ("OK".equals(e.getActionCommand())) {
            this.setVisible(false);
        }
    }
        
    public static void main(String[] args) {
        JFrame ownerFrame = new JFrame("Test");
        ToggleAclDialog dialog = new ToggleAclDialog(ownerFrame, false, null, new Properties());
        dialog.setVisible(true);
        
        dialog.dispose();
        ownerFrame.dispose();
    }
    
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy