components/visual-panels/firewall/src/java/vpanels/app/firewall/com/oracle/solaris/vp/panels/firewall/client/swing/FirewallPanelDescriptor.java
changeset 3553 f1d133b09a8c
parent 3552 077ebe3d0d24
child 3554 ef58713bafc4
--- a/components/visual-panels/firewall/src/java/vpanels/app/firewall/com/oracle/solaris/vp/panels/firewall/client/swing/FirewallPanelDescriptor.java	Tue Dec 16 05:53:51 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,365 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
- */
-
-package com.oracle.solaris.vp.panels.firewall.client.swing;
-
-import java.beans.PropertyChangeEvent;
-import java.io.IOException;
-import java.net.UnknownHostException;
-import java.util.*;
-import javax.swing.*;
-import javax.swing.filechooser.FileSystemView;
-import com.oracle.solaris.rad.client.RadObjectException;
-import com.oracle.solaris.rad.connect.Connection;
-import com.oracle.solaris.scf.common.ScfException;
-import com.oracle.solaris.vp.panel.common.*;
-import com.oracle.solaris.vp.panel.common.api.network.*;
-import com.oracle.solaris.vp.panel.common.api.file.RemoteFileSystemView;
-import com.oracle.solaris.vp.panel.common.api.smf_old.*;
-import com.oracle.solaris.vp.panel.common.control.*;
-import com.oracle.solaris.vp.panel.common.model.*;
-import com.oracle.solaris.vp.panel.common.smf.*;
-import com.oracle.solaris.vp.panel.swing.control.PanelFrameControl;
-import com.oracle.solaris.vp.panel.swing.model.SwingPanelDescriptor;
-import com.oracle.solaris.vp.util.misc.SimpleHasId;
-import com.oracle.solaris.vp.util.misc.finder.Finder;
-import com.oracle.solaris.vp.util.swing.HasIcons;
-
-@SuppressWarnings({"serial"})
-public class FirewallPanelDescriptor
-    extends ServicePanelDescriptor<ServiceManagedObject>
-    implements SwingPanelDescriptor<ServiceManagedObject>, HasIcons,
-    HasAccessPolicy {
-
-    //
-    // Static data
-    //
-
-    protected static final List<ImageIcon> icons = Finder.getIcons(
-	"images/global-16.png",
-	"images/global-24.png",
-	"images/global-32.png");
-
-    public static final String PROPERTY_ACCESS_POLICY = "access policy";
-
-    private static final String SERVICE = "network/ipfilter";
-    private static final String INSTANCE = "default";
-
-    public static final String FW_GLOBAL_DEF_PG = "firewall_config_default";
-    public static final String FW_GLOBAL_OVR_PG = "firewall_config_override";
-
-    //
-    // Instance data
-    //
-
-    public AccessPolicy policy = new SimpleAccessPolicy(AccessPolicy.Type.NONE);
-    public AccessPolicy ovrPolicy = new SimpleAccessPolicy(
-	AccessPolicy.Type.NONE);
-
-    private DefaultControl control;
-    private RemoteFileSystemView fsView;
-    private BeanTracker<Network> networkBeanTracker;
-    private SimpleHasId tmpHasId = new SimpleHasId();
-
-    private SimpleSmfPropertyGroupInfo defaultPgInfo;
-    private SimpleSmfPropertyGroupInfo overridePgInfo;
-
-    private List<ServiceManagedObject> services =
-	new LinkedList<ServiceManagedObject>();
-    private List<ServiceManagedObject> roServices =
-	Collections.unmodifiableList(services);
-
-    //
-    // Constructors
-    //
-
-    public FirewallPanelDescriptor(String id,
-	ClientContext context) throws IOException,
-	ScfException, InvalidScfDataException, MissingScfDataException,
-	TrackerException {
-
-	super(id, context, SERVICE, INSTANCE);
-
-	fsView = new RemoteFileSystemView(context);
-
-	networkBeanTracker = new BeanTracker<Network>(
-	    (new Network()).getName(), Network.class, context);
-
-	setComparator(SimpleHasId.COMPARATOR);
-
-	defaultPgInfo = new SimpleSmfPropertyGroupInfo(
-	    getService(), FW_GLOBAL_DEF_PG);
-	overridePgInfo = new SimpleSmfPropertyGroupInfo(
-	    getService(), FW_GLOBAL_OVR_PG);
-
-	((SimpleAccessPolicy) policy).setPgInfo(defaultPgInfo);
-	((SimpleAccessPolicy) ovrPolicy).setPgInfo(overridePgInfo);
-	refresh(true);
-
-	// populate managed services
-	populateServiceList();
-
-	control = new PanelFrameControl<FirewallPanelDescriptor>(this);
-	control.addChildren(new MainControl(this));
-    }
-
-    //
-    // HasIcon methods
-    //
-
-    @Override
-    public List<? extends Icon> getIcons() {
-	return icons;
-    }
-
-    //
-    // HasAccessPolicy methods
-    //
-
-    @Override
-    public AccessPolicy getAccessPolicy() {
-	return policy;
-    }
-
-    @Override
-    public void setAccessPolicy(AccessPolicy policy) {
-	this.policy = policy;
-    }
-
-    //
-    // ManagedObject methods
-    //
-
-    /**
-     * Stops monitoring the connection to the remote host.
-     */
-    @Override
-    public void dispose() {
-	networkBeanTracker.dispose();
-	fsView.dispose();
-	super.dispose();
-    }
-
-    @Override
-    public String getName() {
-	return Finder.getString("panel.firewall.name");
-    }
-
-    //
-    // AbstractManagedObject methods
-    //
-
-    @Override
-    public void addChildren(ServiceManagedObject... toAdd) {
-	super.addChildren(toAdd);
-	for (ServiceManagedObject c : toAdd) {
-	    int index = Collections.binarySearch(services, c, getComparator());
-	    services.remove(index);
-	}
-    }
-
-    @Override
-    public void removeChildren(ServiceManagedObject... toRemove) {
-	super.removeChildren(toRemove);
-	addManagedServices(toRemove);
-    }
-
-    //
-    // PanelDescriptor methods
-    //
-
-    @Override
-    public Control getControl() {
-	return control;
-    }
-
-    //
-    // ServicePanelDescriptor methods
-    //
-
-    @Override
-    public void refresh(boolean force) throws ScfException,
-	InvalidScfDataException, MissingScfDataException {
-	super.refresh(force);
-
-	((SimpleAccessPolicy) policy).initFromRepo();
-	((SimpleAccessPolicy) ovrPolicy).initFromRepo();
-    }
-
-    //
-    // FirewallPanelDescriptor methods
-    //
-
-    public List<String> getOpenPorts() {
-	return policy.getOpenPortList();
-    }
-
-    public AccessPolicy getOvrAccessPolicy() {
-	return ovrPolicy;
-    }
-
-    public void setOvrAccessPolicy(AccessPolicy policy) {
-	ovrPolicy = policy;
-    }
-
-    public FileSystemView getFileSystemView() {
-	return fsView;
-    }
-
-    public List<ServiceManagedObject> getAllServices() {
-	return roServices;
-    }
-
-    public ServiceManagedObject getManagedService(String id) {
-	synchronized (children) {
-	    tmpHasId.setId(id);
-	    int index = Collections.binarySearch(children, tmpHasId,
-		SimpleHasId.COMPARATOR);
-
-	    if (index >= 0) {
-		return children.get(index);
-	    }
-
-	    return null;
-	}
-    }
-
-    //
-    // Set open_port values which update default policy.
-    //
-    public void updateOpenPorts(List<String> portList) {
-	((SimpleAccessPolicy) policy).setPortList(portList);
-    }
-
-    //
-    // Update all AccessPolicy values but open_port.
-    //
-    public void updateAccessPolicy(AccessPolicy p) {
-	((SimpleAccessPolicy) policy).update(p.getType(), p.getCustomFile(),
-	    p.getApplyToList(), p.getExceptionsList(),
-	    new ArrayList<String>(policy.getOpenPortList()));
-    }
-
-    //
-    // Update OvrAccessPolicy values
-    //
-    public void updateOvrAccessPolicy(AccessPolicy policy) {
-	((SimpleAccessPolicy) ovrPolicy).update(policy.getType(),
-	    policy.getCustomFile(), policy.getApplyToList(),
-	    policy.getExceptionsList(), null);
-    }
-
-    public void saveToRepo() throws ScfException, UnknownHostException {
-	synchronized (getService()) {
-	    getService().pause();
-	    try {
-		((SimpleAccessPolicy) policy).setRepoValue();
-		((SimpleAccessPolicy) ovrPolicy).setRepoValue();
-
-		if (getEnabledProperty().isChanged())
-		    getEnabledProperty().saveToRepo();
-	    } finally {
-		getService().unpause();
-	    }
-	}
-
-	PropertyChangeEvent e = new PropertyChangeEvent(this,
-	    PROPERTY_ACCESS_POLICY, policy, policy);
-	firePropertyChange(e);
-
-	e = new PropertyChangeEvent(this, PROPERTY_ACCESS_POLICY,
-	    ovrPolicy, ovrPolicy);
-	firePropertyChange(e);
-    }
-
-    public void resetPolicies() {
-	SimpleAccessPolicy p = (SimpleAccessPolicy) policy;
-	p.update(p.getSavedType(), p.getSavedCustomFile(),
-	    p.getSavedApplyToList(), p.getSavedExceptionsList(),
-	    p.getSavedOpenPortList());
-
-	p = (SimpleAccessPolicy) ovrPolicy;
-	p.update(p.getSavedType(), p.getSavedCustomFile(),
-	    p.getSavedApplyToList(), p.getSavedExceptionsList(),
-	    p.getSavedOpenPortList());
-
-	if (getEnabledProperty().isChanged())
-	    getEnabledProperty().reset();
-    }
-
-    public Network getNetworkBean() {
-	return networkBeanTracker.getBean();
-    }
-
-    //
-    // Private methods
-    //
-
-    private void addManagedServices(ServiceManagedObject ...svcs) {
-	for (ServiceManagedObject s : svcs) {
-	    int index = Collections.binarySearch(services, s, getComparator());
-	    if (index < 0)
-		services.add(-index - 1, s);
-	}
-    }
-
-    private void populateServiceList() throws ScfException,
-	InvalidScfDataException, MissingScfDataException {
-
-	ConnectionInfo cinfo = getClientContext().getConnectionInfo();
-	Connection conn = cinfo.getConnection();
-
-	Set<Instance> instances = null;
-
-	try {
-	    Aggregator aggbean = conn.getObject(new Aggregator());
-	    instances = new HashSet<Instance>(aggbean.getinstances());
-
-	    for (Instance inst : instances) {
-		ServiceManagedObject sobj = new ServiceManagedObject(this,
-		    conn, inst);
-
-		if (!sobj.isFirewallSupported())
-		    continue;
-
-		//
-		// Mark service inactive if it has default policy
-		// else mark it active and add to children list
-		//
-		if (sobj.isDefaultPolicy()) {
-		    addManagedServices(sobj);
-		} else {
-		    super.addChildren(sobj);
-		}
-	    }
-	} catch (RadObjectException e) {
-	} catch (IOException e) {
-	} catch (Exception e) {
-	    throw e; // Propagate proxy creation exception
-	}
-
-	Collections.sort(services, SimpleHasId.COMPARATOR);
-    }
-}