Package org.apache.cayenne.modeler.dialog.datadomain

Source Code of org.apache.cayenne.modeler.dialog.datadomain.CacheSyncConfigDialog

/*****************************************************************
*   Licensed to the Apache Software Foundation (ASF) under one
*  or more contributor license agreements.  See the NOTICE file
*  distributed with this work for additional information
*  regarding copyright ownership.  The ASF licenses this file
*  to you 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.apache.cayenne.modeler.dialog.datadomain;

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Component;
import java.awt.FlowLayout;

import javax.swing.JPanel;

import org.scopemvc.core.Control;
import org.scopemvc.view.swing.SButton;
import org.scopemvc.view.swing.SComboBox;
import org.scopemvc.view.swing.SPanel;
import org.scopemvc.view.swing.SwingView;

import com.jgoodies.forms.builder.DefaultFormBuilder;
import com.jgoodies.forms.layout.FormLayout;

/**
*/
public class CacheSyncConfigDialog extends SPanel {
    public static final String EMPTY_CARD_KEY = "Empty";

    protected JPanel configPanel;

    public CacheSyncConfigDialog() {
        initView();
    }

    protected void initView() {
        setDisplayMode(SwingView.MODAL_DIALOG);
        this.setLayout(new BorderLayout());
        this.setTitle("Configure Remote Cache Synchronization");

        SComboBox type = new SComboBox();
        type.setSelector(CacheSyncTypesModel.NOTIFICATION_TYPES_SELECTOR);
        type.setSelectionSelector(CacheSyncTypesModel.FACTORY_LABEL_SELECTOR);

        SButton saveButton = new SButton(CacheSyncConfigController.SAVE_CONFIG_CONTROL);
        SButton cancelButton =
            new SButton(CacheSyncConfigController.CANCEL_CONFIG_CONTROL);

        // buttons panel
        JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
        buttonPanel.add(saveButton);
        buttonPanel.add(cancelButton);

        // type form
        FormLayout layout = new FormLayout("right:150, 3dlu, left:200", "");
        DefaultFormBuilder builder = new DefaultFormBuilder(layout);
        builder.setDefaultDialogBorder();
        builder.append("Notification Transport Type:", type);

        // config panel
        configPanel = new JPanel(new CardLayout());
        addCard(new JPanel(), EMPTY_CARD_KEY);

        this.add(builder.getPanel(), BorderLayout.NORTH);
        this.add(configPanel, BorderLayout.CENTER);
        this.add(buttonPanel, BorderLayout.SOUTH);

        showCard(EMPTY_CARD_KEY);
    }

    public Control getCloseControl() {
        return new Control(CacheSyncConfigController.CANCEL_CONFIG_CONTROL);
    }

    public void addCard(Component card, String key) {
        configPanel.add(card, key);
    }

    public void showCard(String key) {
        ((CardLayout) configPanel.getLayout()).show(configPanel, key);
    }
}
TOP

Related Classes of org.apache.cayenne.modeler.dialog.datadomain.CacheSyncConfigDialog

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.