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

org.noos.xing.mydoggy.mydoggyset.view.contents.ContentTableView Maven / Gradle / Ivy

There is a newer version: 1.6.0
Show newest version
package org.noos.xing.mydoggy.mydoggyset.view.contents;

import org.noos.xing.mydoggy.Content;
import org.noos.xing.mydoggy.ToolWindowManager;
import org.noos.xing.mydoggy.mydoggyset.ui.CheckBoxCellRenderer;
import org.noos.xing.mydoggy.mydoggyset.view.contents.model.ContentsTableModel;
import org.noos.xing.mydoggy.plaf.ui.cmp.ExtendedTableLayout;
import org.noos.xing.yasaf.plaf.action.ViewContextAction;
import org.noos.xing.yasaf.plaf.component.ToolBarContentPanel;
import org.noos.xing.yasaf.plaf.view.ComponentView;
import org.noos.xing.yasaf.plaf.view.listener.ContextPutTableListSelectionListener;
import org.noos.xing.yasaf.view.ViewContext;
import org.noos.xing.yasaf.view.ViewContextChangeListener;
import org.noos.xing.yasaf.view.event.ViewContextChangeEvent;

import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.awt.*;
import java.awt.event.ActionEvent;

/**
 * @author Angelo De Caro ([email protected])
 */
public class ContentTableView extends ComponentView {

    public ContentTableView(ViewContext viewContext) {
        super(viewContext);
    }

    protected Component initComponent() {
        JPanel main = new JPanel(new ExtendedTableLayout(new double[][]{{-1},{-1}}));
        main.setBorder(new TitledBorder("Contents"));

        JTable contentsTable = new JTable(new ContentsTableModel(viewContext.get(ToolWindowManager.class)));
        contentsTable.getTableHeader().setReorderingAllowed(false);
        contentsTable.getSelectionModel().addListSelectionListener(
                new ContextPutTableListSelectionListener(viewContext, Content.class, contentsTable, -1)
        );

        JCheckBox booleanEditor = new JCheckBox();
        booleanEditor.setHorizontalAlignment(SwingConstants.CENTER);
        for (int i = 1; i < 6; i++) {
            contentsTable.getColumnModel().getColumn(i).setCellRenderer(new CheckBoxCellRenderer());
            contentsTable.getColumnModel().getColumn(i).setCellEditor(new DefaultCellEditor(booleanEditor));
        }

        ToolBarContentPanel toolBarContentPanel = new ToolBarContentPanel(new JScrollPane(contentsTable));
        toolBarContentPanel.getToolBar().add(new RemoveAllContentAction(viewContext.get(ToolWindowManager.class)));
        toolBarContentPanel.getToolBar().add(new ViewContextAction("Remove", null, viewContext,
                                                                   "remove", Content.class));

        main.add(toolBarContentPanel, "0,0,FULL,FULL");

        return main;
    }

    protected void initListeners() {
        viewContext.addViewContextChangeListener("remove", new ViewContextChangeListener() {
            public void contextChange(ViewContextChangeEvent evt) {
                ViewContext viewContext = evt.getViewContext();
                viewContext.get(ToolWindowManager.class).getContentManager().removeContent(
                        viewContext.get(Content.class)
                );
            }
        });
    }

    protected class RemoveAllContentAction extends AbstractAction {
        protected ToolWindowManager toolWindowManager;

        public RemoveAllContentAction(ToolWindowManager toolWindowManager) {
            super("Remove All");
            this.toolWindowManager = toolWindowManager;
        }

        public void actionPerformed(ActionEvent e) {
            toolWindowManager.getContentManager().removeAllContents();
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy