Package de.timefinder.core.ui.form

Source Code of de.timefinder.core.ui.form.DualEventMasterDetailView

/*
*  Copyright 2009 Peter Karich.
*
*  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.
*  under the License.
*/
package de.timefinder.core.ui.form;

import de.timefinder.core.util.DualEvent;
import de.timefinder.core.springrc.MyAbstractTableMasterForm;
import de.timefinder.core.ui.metadata.DualEventDescriptor;
import de.timefinder.core.ui.metadata.PoolDescriptor;
import de.timefinder.data.util.Helper;
import de.timefinder.data.Event;
import de.timefinder.data.access.Dao;
import de.timefinder.data.meta.UiShow;
import java.awt.BorderLayout;
import java.util.Collection;
import javax.swing.JComponent;
import javax.swing.JPanel;
import org.springframework.binding.form.HierarchicalFormModel;
import org.springframework.binding.value.ValueModel;
import org.springframework.binding.value.support.ObservableList;
import org.springframework.richclient.application.support.AbstractView;
import org.springframework.richclient.command.AbstractCommand;
import org.springframework.richclient.command.CommandGroup;
import org.springframework.richclient.form.AbstractDetailForm;
import org.springframework.richclient.form.Form;
import org.springframework.richclient.form.FormModelHelper;
import org.springframework.richclient.form.binding.Binding;
import org.springframework.richclient.form.binding.swing.SwingBindingFactory;
import org.springframework.richclient.form.builder.TableFormBuilder;

/**
* @author Peter Karich
*/
public class DualEventMasterDetailView extends AbstractView {

    public Form createForm(Dao<Event> dao, final String[] columns) {
        Object events = new Object() {

            public Collection<DualEvent> getAll() {
                return ((DualEventDescriptor) getDescriptor()).getDualEvents();
            }
        };

        return new MyAbstractTableMasterForm(FormModelHelper.createFormModel(events), "all",
                DualEvent.class.getSimpleName().toLowerCase(), DualEvent.class) {

//            @Override
//            protected void updateControlsForState() {
//            }
            @Override
            protected CommandGroup getCommandGroup() {
                return CommandGroup.createCommandGroup(null, new AbstractCommand[]{});
            }

            @Override
            protected AbstractDetailForm createDetailForm(HierarchicalFormModel parentFormModel,
                    ValueModel valueHolder, ObservableList masterList) {
                return new AbstractDaoForm(parentFormModel,
                        "dualeventsDetails", valueHolder, masterList) {

                    @Override
                    protected JComponent createFormControl() {
                        SwingBindingFactory factory = (SwingBindingFactory) getBindingFactory();
                        TableFormBuilder formBuilder = getFormBuilder();

                        Binding bind = factory.createBoundList("commonPersons");
                        formBuilder.add(bind);
                        JPanel mainPanel = new JPanel(new BorderLayout());
                        mainPanel.add(getFormBuilder().getForm(), BorderLayout.CENTER);
                        updateControlsForState();
                        return mainPanel;
                    }
                };
            }

            @Override
            protected String[] getColumnPropertyNames() {
                return columns;
            }
        };
    }

    @Override
    protected JComponent createControl() {
        @SuppressWarnings("unchecked")
        PoolDescriptor<Event> tableDescriptor = (PoolDescriptor<Event>) getDescriptor();
        JPanel panel = new JPanel(new BorderLayout());
        Form mdForm = createForm(tableDescriptor.getDao(), Helper.convert(String.class,
                tableDescriptor.getObjectDescriptor().getUiProperties(UiShow.OVERVIEW)));
        panel.add(mdForm.getControl(), BorderLayout.CENTER);
        return panel;
    }
}
TOP

Related Classes of de.timefinder.core.ui.form.DualEventMasterDetailView

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.