⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datagridmetaimpl.java

📁 CRM源码This file describes some issues that should be implemented in future and how it should be imple
💻 JAVA
字号:
/*
 * Copyright 2006-2007 Queplix Corp.
 *
 * Licensed under the Queplix Public License, Version 1.1.1 (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.queplix.com/solutions/commercial-open-source/queplix-public-license/
 *
 * 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 com.queplix.core.client.common.ui.grid;

import com.queplix.core.client.app.vo.FieldMeta;
import com.queplix.core.client.app.vo.GridMeta;
import com.queplix.core.client.app.vo.uisettings.GridUISettings;

import java.util.Map;


/**
 * DataGrid-related metadata
 * @author Vasily Mikhailitchenko
 * @since 19 Dec 2006
 */
public class DataGridMetaImpl implements DataGridMeta {
    private DataGridColumn[] columns;
    
    public DataGridMetaImpl() {
    }

    public DataGridColumn[] getColumns() {
        return columns;
    }

    public void setColumns(DataGridColumn[] columns) {
        this.columns = columns;
    }
    
    public String getCaption(int column){
        return columns[column].getCaption();
    }
    
    public int getColumnIndex(long columnID) {
        int i = columns.length - 1;
        while ((i > -1)  &&  (columns[i].getID() != columnID)) {
            i--;
        }
        return i;
    }

    public DataGridColumn getColumn(int column) {
        return columns[column];
    }

    public int getColumnsCount() {
        return columns.length;
    }

    public static DataGridMeta createDataGridMeta(FieldMeta[] fieldMetas) {
        DataGridMetaImpl result = new DataGridMetaImpl();

        DataGridColumn[] dataGridColumns = new DataGridColumn[fieldMetas.length];
        for(int i = 0; i < fieldMetas.length; i++) {
            FieldMeta fieldMeta = fieldMetas[i];
            String caption = fieldMeta.getCaption();
            dataGridColumns[i] = new DataGridColumn(i, caption);
        }
        result.setColumns(dataGridColumns);
        return result;
    }

    public static DataGridMeta createDataGridMeta(GridMeta meta) {
        DataGridMetaImpl result = new DataGridMetaImpl();
        FieldMeta[] fieldMetas = meta.getFields();

        long[] ids = meta.getColumns().getSelectedIDs();
        DataGridColumn[] dataGridColumns = new DataGridColumn[ids.length];
        for (int i = 0; i < ids.length; i++) {
            int id = (int) ids[i];
            FieldMeta fieldMeta = fieldMetas[id];
            String caption = fieldMeta.getCaption();
            dataGridColumns[i] = new DataGridColumn(id, caption);

            GridUISettings uiSettings = meta.getUISettings();
            if (uiSettings != null) {
                Map columnWidths = uiSettings.getColumnWidths();
                if (columnWidths != null) {
                    Integer width = (Integer) columnWidths.get(fieldMeta.getFieldID());
                    if (width != null) {
                        dataGridColumns[i].setResized(true);
                        dataGridColumns[i].setWidth(width.intValue());
                    }
                }
            }
        }
        result.setColumns(dataGridColumns);
        return result;
    }

    public static DataGridMeta createDataGridMeta(DataGridMeta oldMeta, GridMeta meta) {
        DataGridMeta newMeta = createDataGridMeta(meta);
        for (int i = 0; i < oldMeta.getColumnsCount(); i++) {
            DataGridColumn oldColumn = oldMeta.getColumn(i);
            long id = oldColumn.getID();
            int index = newMeta.getColumnIndex(id);
            if (index > -1) { // found
                newMeta.getColumn(index).setWidth(oldColumn.getWidth());
            }
        }
        return newMeta;
    }

    public static void collectUISettings(DataGridMeta dataGridColumns, GridMeta meta) {
        FieldMeta[] fieldMetas = meta.getFields();

        long[] ids = meta.getColumns().getSelectedIDs();
        for (int i = 0; i < ids.length; i++) {
            if (dataGridColumns.getColumn(i).isResized()) {
                int id = (int) ids[i];
                FieldMeta fieldMeta = fieldMetas[id];
                String key = fieldMeta.getFieldID();
                Integer width = new Integer(dataGridColumns.getColumn(i).getWidth());
                Map columnWidths = meta.getOrCreateColumnWidths();
                columnWidths.put(key, width);
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -