Search in sources :

Example 6 with Table

use of com.servoy.j2db.persistence.Table in project servoy-client by Servoy.

the class QBJoins method add.

/**
 * @clonedesc com.servoy.j2db.querybuilder.IQueryBuilderJoins#add(String, int, String)
 * @sampleas add(String, int)
 *
 * @param dataSource data source
 * @param joinType join type, one of {@link IQueryBuilderJoin#LEFT_OUTER_JOIN}, {@link IQueryBuilderJoin#INNER_JOIN}, {@link IQueryBuilderJoin#RIGHT_OUTER_JOIN}, {@link IQueryBuilderJoin#FULL_JOIN}
 * @param alias the alias for joining table
 */
@JSFunction
public QBJoin add(String dataSource, int joinType, String alias) {
    String name;
    QBJoin join;
    if (alias == null) {
        name = UUID.randomUUID().toString();
        join = null;
    } else {
        name = alias;
        join = getJoin(name);
    }
    if (join == null) {
        Table foreignTable = root.getTable(dataSource);
        join = addJoin(new QueryJoin(name, parent.getQueryTable(), new TableExpression(new QueryTable(foreignTable.getSQLName(), foreignTable.getDataSource(), foreignTable.getCatalog(), foreignTable.getSchema(), alias)), new AndCondition(), joinType, true), dataSource, name);
    }
    return join;
}
Also used : DerivedTable(com.servoy.j2db.query.DerivedTable) QueryTable(com.servoy.j2db.query.QueryTable) Table(com.servoy.j2db.persistence.Table) QueryJoin(com.servoy.j2db.query.QueryJoin) TableExpression(com.servoy.j2db.query.TableExpression) QueryTable(com.servoy.j2db.query.QueryTable) AndCondition(com.servoy.j2db.query.AndCondition) JSFunction(org.mozilla.javascript.annotations.JSFunction)

Example 7 with Table

use of com.servoy.j2db.persistence.Table in project servoy-client by Servoy.

the class FormPreviewPanel method process.

// build the chain and fill the renderers,returns number of pages
public int process() throws Exception {
    // clear
    root = null;
    // set size of this panel
    orgWidth = new Dimension((int) (currentPageFormat.getWidth() * (1 / factor)), (int) (currentPageFormat.getHeight() * (1 / factor)));
    applySize();
    part_panels = createPartPanels();
    Form form = controllerBeingPreviewed.getForm();
    // otherwise you cannot print multiple columns   (int) (application.getPageFormat().getImageableWidth()*(1/factor));
    int w = form.getWidth();
    try {
        // $NON-NLS-1$
        application.getRuntimeProperties().put("isPrinting", Boolean.TRUE);
        Map componentsUsingSliding = application.getDataRenderFactory().completeRenderers(application, form, controllerBeingPreviewed.getScriptExecuter(), part_panels, w, true, null, null);
        PropertyCopy.copyExistingPrintableProperties(application, controllerBeingPreviewed, part_panels);
        Iterator<DataRenderer> panels = part_panels.values().iterator();
        while (panels.hasNext()) {
            DataRenderer panel = panels.next();
            panel.setComponentsUsingSliding(componentsUsingSliding);
            DataRendererFactory.addSpringsBetweenComponents(application, panel);
        }
        // $NON-NLS-1$
        Debug.trace("usesSliding " + (componentsUsingSliding.size() != 0));
    } finally {
        // $NON-NLS-1$
        application.getRuntimeProperties().put("isPrinting", null);
    }
    // create list
    renderParent = application.getPrintingRendererParent();
    plist = new PageList(application, this, renderParent);
    PartNode node = null;
    // create the chain based on the sort,LAST node must be the body part (is virtal added if not present)
    Part body = null;
    FormController fp = ((FormManager) application.getFormManager()).leaseFormPanel(controllerBeingPreviewed.getName());
    if (fp != null && !fp.isShowingData()) {
        // List lst = fp.getFormModel().getLastSearchColumns();
        if (fp.wantEmptyFoundSet()) {
            if (fp.getFormModel() != null)
                fp.getFormModel().clear();
        } else {
            fp.loadAllRecords();
        }
    // fp.getFormModel().sort(lst);
    }
    List<SortColumn> sortColumns = ((FoundSet) formData).getLastSortColumns();
    if (formData.getSize() != 0) {
        if (sortColumns != null) {
            Set<String> consumed = new HashSet<String>();
            for (int i = 0; i < sortColumns.size(); i++) {
                SortColumn sc = sortColumns.get(i);
                Iterator<Part> it = part_panels.keySet().iterator();
                while (it.hasNext()) {
                    Part part = it.next();
                    DataRenderer dr = part_panels.get(part);
                    if (part.getPartType() == Part.BODY) {
                        body = part;
                        continue;
                    }
                    if (part.getPartType() != Part.LEADING_SUBSUMMARY && part.getPartType() != Part.TRAILING_SUBSUMMARY) {
                        IRecordInternal state = new PageNumberState(formData, plist);
                        plist.setNonRepeatingPart(part.getPartType(), new DataRendererDefinition(this, renderParent, part, dr, state));
                        continue;
                    }
                    boolean match = false;
                    int inlineCount = 0;
                    List<SortColumn> partSortColumns = new ArrayList<SortColumn>();
                    SortColumn lastMatch = sc;
                    String groupByDataproviders = part.getGroupbyDataProviderIDs() != null ? part.getGroupbyDataProviderIDs() : "";
                    // $NON-NLS-1$ //$NON-NLS-2$
                    StringTokenizer tk = new StringTokenizer("" + groupByDataproviders.toLowerCase(), ", ");
                    int tokenCount = tk.countTokens();
                    String[] ids = new String[tokenCount];
                    for (; inlineCount < tokenCount; inlineCount++) {
                        String id = tk.nextToken();
                        ids[inlineCount] = id;
                        if (lastMatch.getDataProviderID().equals(id)) {
                            partSortColumns.add(lastMatch);
                            if ((i + inlineCount + 1) < sortColumns.size()) {
                                lastMatch = sortColumns.get(i + inlineCount + 1);
                                if (part.getPartType() == Part.LEADING_SUBSUMMARY && consumed.contains(lastMatch)) {
                                    break;
                                }
                            } else {
                                break;
                            }
                        } else {
                            break;
                        }
                    }
                    if (// did all match?
                    tokenCount > 0 && partSortColumns.size() == tokenCount) {
                        match = true;
                        if (part.getPartType() == Part.LEADING_SUBSUMMARY) {
                            for (String element : ids) {
                                consumed.add(element);
                            }
                        }
                    }
                    if (match) {
                        SortColumn[] array = new SortColumn[partSortColumns.size()];
                        partSortColumns.toArray(array);
                        if (// create root
                        root == null) {
                            root = new PartNode(this, part, dr, renderParent, array);
                            node = root;
                        } else {
                            if (!tryToPlaceInExistingNodes(part, dr, array)) {
                                PartNode newNode = new PartNode(this, part, dr, renderParent, array);
                                node.setChild(newNode);
                                node = newNode;
                            }
                        }
                    }
                }
            }
            PartNode newNode = null;
            if (body == null) {
                // a virtual body (when no body is placed in the parts)
                newNode = new PartNode(this, null, null, renderParent, null);
            } else {
                // the body
                newNode = new PartNode(this, body, part_panels.get(body), renderParent, null);
            }
            if (node != null) {
                node.setChild(newNode);
            } else {
                root = newNode;
            }
        } else // no sort...
        {
            if (// search for body
            body == null) {
                Iterator<Part> it = part_panels.keySet().iterator();
                while (it.hasNext()) {
                    Part part = it.next();
                    DataRenderer dr = part_panels.get(part);
                    IRecordInternal state = new PageNumberState(formData, plist);
                    if (part.getPartType() == Part.BODY) {
                        body = part;
                        continue;
                    }
                    if (part.getPartType() != Part.LEADING_SUBSUMMARY && part.getPartType() != Part.TRAILING_SUBSUMMARY) {
                        plist.setNonRepeatingPart(part.getPartType(), new DataRendererDefinition(this, renderParent, part, dr, state));
                        continue;
                    }
                }
            }
            if (body == null) {
                // a virtual body (when no body is placed in the parts)
                root = new PartNode(this, null, null, renderParent, null);
            } else // if (body != null)
            {
                // the body
                root = new PartNode(this, body, part_panels.get(body), renderParent, null);
            }
        }
    }
    try {
        // $NON-NLS-1$
        application.getRuntimeProperties().put("isPrinting", Boolean.TRUE);
        long t1 = System.currentTimeMillis();
        // fill the renderers with data
        if (root != null) {
            // dump chain
            // $NON-NLS-1$
            Debug.trace("Root " + root);
            QuerySelect sqlString = ((FoundSet) formData).getQuerySelectForReading();
            Table table = formData.getSQLSheet().getTable();
            FoundSet fs = (FoundSet) ((FoundSetManager) application.getFoundSetManager()).getNewFoundSet(table, null, sortColumns);
            fs.browseAll(sqlString);
            long t3 = System.currentTimeMillis();
            List<DataRendererDefinition> childRetval = root.process(this, fs, table, sqlString);
            long t4 = System.currentTimeMillis();
            if (Debug.tracing()) {
                // $NON-NLS-1$ //$NON-NLS-2$
                Debug.trace("Database queries took " + ((t4 - t3) / 1000f) + " second");
            }
            if (childRetval != null) {
                for (int i = 0; i < childRetval.size(); i++) {
                    plist.addPanel(childRetval.get(i));
                }
            }
        }
        plist.finish();
        long t2 = System.currentTimeMillis();
        int pageCount = plist.getNumberOfPages();
        // dump
        if (Debug.tracing()) {
            Debug.trace(plist);
            // $NON-NLS-1$ //$NON-NLS-2$
            Debug.trace("Generated " + pageCount / ((t2 - t1) / 1000f) + " printable pages per second");
        }
    } finally {
        // $NON-NLS-1$
        application.getRuntimeProperties().put("isPrinting", null);
    }
    renderParent.removeAll();
    return plist.getNumberOfPages();
}
Also used : Form(com.servoy.j2db.persistence.Form) DataRenderer(com.servoy.j2db.smart.dataui.DataRenderer) ArrayList(java.util.ArrayList) SortColumn(com.servoy.j2db.dataprocessing.SortColumn) FormManager(com.servoy.j2db.FormManager) HashSet(java.util.HashSet) FormController(com.servoy.j2db.FormController) Table(com.servoy.j2db.persistence.Table) IRecordInternal(com.servoy.j2db.dataprocessing.IRecordInternal) FoundSet(com.servoy.j2db.dataprocessing.FoundSet) Dimension(java.awt.Dimension) QuerySelect(com.servoy.j2db.query.QuerySelect) StringTokenizer(java.util.StringTokenizer) Part(com.servoy.j2db.persistence.Part) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map)

Example 8 with Table

use of com.servoy.j2db.persistence.Table in project servoy-client by Servoy.

the class ColumnSortListener method mouseClicked.

/*
	 * (non-Javadoc)
	 * 
	 * @see java.awt.event.MouseAdapter#mouseClicked(java.awt.event.MouseEvent)
	 */
@Override
public void mouseClicked(final MouseEvent e) {
    if (!table.isEnabled())
        return;
    if (e.getButton() == MouseEvent.BUTTON1) {
        if (fc != null)
            fc.setLastKeyModifiers(e.getModifiers());
        TableColumnModel colModel = table.getColumnModel();
        if (colModel == null) {
            return;
        }
        int columnModelIndex = colModel.getColumnIndexAtX(e.getX());
        if (columnModelIndex < 0) {
            return;
        }
        final TableColumn column = colModel.getColumn(columnModelIndex);
        if (column == null) {
            return;
        }
        int modelIndex = column.getModelIndex();
        if (modelIndex < 0) {
            return;
        }
        if (table.getModel() instanceof IFoundSetInternal && application.getFoundSetManager().getEditRecordList().stopIfEditing((IFoundSetInternal) table.getModel()) != ISaveConstants.STOPPED) {
            return;
        }
        Integer columnIndex = Integer.valueOf(columnModelIndex);
        if (lastColumnIndex.containsKey(columnIndex)) {
            lastSortAsc = !lastColumnIndex.get(columnIndex).booleanValue();
        } else {
            lastSortAsc = true;
            if (fc != null && column instanceof CellAdapter && ((CellAdapter) column).getDataProviderID() != null && e.getClickCount() <= 1 && table.getModel() instanceof IFoundSetInternal) {
                IFoundSetInternal foundset = (IFoundSetInternal) table.getModel();
                List<SortColumn> sortCols = foundset.getSortColumns();
                if (sortCols != null && sortCols.size() > 0) {
                    CellAdapter ca = (CellAdapter) column;
                    List<String> sortingProviders = null;
                    Component renderer = ca.getRenderer();
                    if (renderer instanceof ISupportValueList && ((ISupportValueList) renderer).getValueList() != null) {
                        try {
                            sortingProviders = DBValueList.getShowDataproviders(((ISupportValueList) renderer).getValueList().getValueList(), (Table) foundset.getTable(), ca.getDataProviderID(), application.getFoundSetManager());
                        } catch (RepositoryException ex) {
                            Debug.error(ex);
                        }
                    }
                    if (sortingProviders == null) {
                        // no related sort, use sort on dataProviderID instead
                        sortingProviders = Collections.singletonList(ca.getDataProviderID());
                    }
                    for (String sortingProvider : sortingProviders) {
                        SortColumn existingSc;
                        try {
                            FoundSetManager fsm = (FoundSetManager) foundset.getFoundSetManager();
                            existingSc = fsm.getSortColumn(foundset.getTable(), sortingProvider, false);
                        } catch (Exception ex) {
                            Debug.error(ex);
                            continue;
                        }
                        for (SortColumn sc : sortCols) {
                            if (sc.equalsIgnoreSortorder(existingSc)) {
                                lastSortAsc = sc.getSortOrder() == SortColumn.DESCENDING;
                            }
                        }
                    }
                }
            }
        }
        if (!e.isShiftDown()) {
            // clear previous data
            lastColumnIndex.clear();
        }
        lastColumnIndex.put(columnIndex, Boolean.valueOf(lastSortAsc));
        if (column instanceof CellAdapter && table.getModel() instanceof IFoundSetInternal) {
            try {
                if (sortTimer != null) {
                    sortTimer.stop();
                }
                sortTimer = new Timer(300, new AbstractAction() {

                    public void actionPerformed(ActionEvent event) {
                        try {
                            String dataProviderID = ((CellAdapter) column).getDataProviderID();
                            int labelForOnActionMethodId = 0;
                            if (((CellAdapter) column).getHeaderRenderer() instanceof LFAwareSortableHeaderRenderer) {
                                labelForOnActionMethodId = ((LFAwareSortableHeaderRenderer) ((CellAdapter) column).getHeaderRenderer()).getOnActionMethodID();
                            }
                            if (fc != null && labelForOnActionMethodId > 0) {
                                LFAwareSortableHeaderRenderer renderer = (LFAwareSortableHeaderRenderer) (((CellAdapter) column).getHeaderRenderer());
                                fc.executeFunction(String.valueOf(labelForOnActionMethodId), Utils.arrayMerge((new Object[] { getJavaScriptEvent(e, JSEvent.EventType.action, renderer.getName()) }), Utils.parseJSExpressions(renderer.getFlattenedMethodArguments("onActionMethodID"))), true, null, false, // $NON-NLS-1$//$NON-NLS-2$
                                "onActionMethodID");
                            } else if (fc != null && fc.getForm().getOnSortCmdMethodID() > 0) {
                                // Also execute the on sort command on none data providers (like a label) then they can do there own sort.
                                fc.executeFunction(String.valueOf(fc.getForm().getOnSortCmdMethodID()), Utils.arrayMerge((new Object[] { dataProviderID, Boolean.valueOf(lastSortAsc), getJavaScriptEvent(e, JSEvent.EventType.none, null) }), Utils.parseJSExpressions(fc.getForm().getFlattenedMethodArguments("onSortCmdMethodID"))), true, null, false, // $NON-NLS-1$//$NON-NLS-2$
                                "onSortCmdMethodID");
                            } else if (dataProviderID != null && fc.getForm().getOnSortCmdMethodID() != -1) {
                                List<String> sortingProviders = null;
                                IFoundSetInternal model = (IFoundSetInternal) table.getModel();
                                Component renderer = ((CellAdapter) column).getRenderer();
                                if (renderer instanceof ISupportValueList && ((ISupportValueList) renderer).getValueList() != null) {
                                    try {
                                        sortingProviders = DBValueList.getShowDataproviders(((ISupportValueList) renderer).getValueList().getValueList(), (Table) model.getTable(), dataProviderID, application.getFoundSetManager());
                                    } catch (RepositoryException ex) {
                                        Debug.error(ex);
                                    }
                                }
                                if (sortingProviders == null) {
                                    // no related sort, use sort on dataProviderID instead
                                    sortingProviders = Collections.singletonList(dataProviderID);
                                }
                                try {
                                    List<SortColumn> list = e.isShiftDown() ? model.getSortColumns() : new ArrayList<SortColumn>();
                                    for (String sortingProvider : sortingProviders) {
                                        FoundSetManager fsm = ((FoundSetManager) model.getFoundSetManager());
                                        SortColumn sc = fsm.getSortColumn(model.getTable(), sortingProvider, false);
                                        if (sc != null && sc.getColumn().getDataProviderType() != IColumnTypes.MEDIA) {
                                            for (SortColumn oldColumn : list) {
                                                if (oldColumn.equalsIgnoreSortorder(sc)) {
                                                    sc = oldColumn;
                                                    break;
                                                }
                                            }
                                            if (!list.contains(sc))
                                                list.add(sc);
                                            sc.setSortOrder(lastSortAsc ? SortColumn.ASCENDING : SortColumn.DESCENDING);
                                        }
                                        model.sort(list, false);
                                    }
                                } catch (Exception ex) {
                                    Debug.error(ex);
                                }
                            }
                        } finally {
                            sortTimer.stop();
                        }
                    }
                });
                sortTimer.start();
            } catch (Exception ex) {
                Debug.error(ex);
            }
        }
    }
}
Also used : LFAwareSortableHeaderRenderer(com.servoy.j2db.gui.LFAwareSortableHeaderRenderer) FoundSetManager(com.servoy.j2db.dataprocessing.FoundSetManager) Table(com.servoy.j2db.persistence.Table) IFoundSetInternal(com.servoy.j2db.dataprocessing.IFoundSetInternal) ActionEvent(java.awt.event.ActionEvent) ISupportValueList(com.servoy.j2db.ui.ISupportValueList) TableColumnModel(javax.swing.table.TableColumnModel) RepositoryException(com.servoy.j2db.persistence.RepositoryException) SortColumn(com.servoy.j2db.dataprocessing.SortColumn) TableColumn(javax.swing.table.TableColumn) RepositoryException(com.servoy.j2db.persistence.RepositoryException) Timer(javax.swing.Timer) Component(java.awt.Component) AbstractAction(javax.swing.AbstractAction)

Example 9 with Table

use of com.servoy.j2db.persistence.Table in project servoy-client by Servoy.

the class TestNGClient method createDataServer.

@Override
protected IDataServer createDataServer() {
    return new IDataServer() {

        private final HashMap<String, IDataSet> dataSetMap = new HashMap<String, IDataSet>();

        @Override
        public void setServerMaintenanceMode(boolean maintenanceMode) throws RemoteException {
        }

        @Override
        public void logMessage(String msg) throws RemoteException {
        }

        @Override
        public boolean isInServerMaintenanceMode() throws RemoteException {
            return false;
        }

        @Override
        public boolean releaseLocks(String client_id, String server_name, String table_name, Set<Object> pkhashkeys) throws RemoteException, RepositoryException {
            return false;
        }

        @Override
        public IDataSet acquireLocks(String client_id, String server_name, String table_name, Set<Object> pkhashkeys, QuerySelect lockSelect, String transaction_id, ArrayList<TableFilter> filters, int chunkSize) throws RemoteException, RepositoryException {
            return null;
        }

        @Override
        public String startTransaction(String clientId, String server_name) throws RepositoryException, RemoteException {
            return null;
        }

        @Override
        public Object[] performUpdates(String clientId, ISQLStatement[] statements) throws ServoyException, RemoteException {
            return statements;
        }

        @Override
        public IDataSet[] performQuery(String client_id, String server_name, String transaction_id, QueryData[] array) throws ServoyException, RemoteException {
            if (array.length > 0) {
                String ds = array[0].getSqlSelect().getTable().getDataSource();
                if ("mem:relatedtest".equals(ds)) {
                    IDataSet set = dataSetMap.get(ds);
                    IDataSet[] returnDataSet = new IDataSet[array.length];
                    for (int i = 0; i < array.length; i++) {
                        returnDataSet[i] = new BufferedDataSet();
                        for (int k = 0; k < set.getRowCount(); k++) {
                            Object[][] value = (Object[][]) ((Placeholder) ((SetCondition) ((QuerySelect) array[i].getSqlSelect()).getConditions().values().iterator().next().getConditions().get(0)).getValues()).getValue();
                            if (set.getRow(k)[1].equals(value[0][0])) {
                                returnDataSet[i].addRow(new Object[] { set.getRow(k)[0], set.getRow(k)[1], set.getRow(k)[2], set.getRow(k)[3] });
                            }
                        }
                    }
                    return returnDataSet;
                }
            }
            return null;
        }

        @Override
        public IDataSet performQuery(String client_id, String server_name, String driverTableName, String transaction_id, String sql, Object[] questiondata, int startRow, int rowsToRetrieve, boolean updateIdleTimestamp) throws ServoyException, RemoteException {
            // don't know the
            return dataSetMap.values().iterator().next();
        // datasource,
        // just return
        // the first
        // dataset
        }

        @Override
        public IDataSet performQuery(String client_id, String server_name, String transaction_id, ISQLSelect sqlSelect, ColumnType[] resultTypes, ArrayList<TableFilter> filters, boolean distinctInMemory, int startRow, int rowsToRetrieve, boolean updateIdleTimestamp) throws ServoyException, RemoteException {
            return dataSetMap.get(sqlSelect.getTable().getDataSource());
        }

        @Override
        public IDataSet performQuery(String client_id, String server_name, String driverTableName, String transaction_id, String sql, Object[] questiondata, int startRow, int rowsToRetrieve, int type) throws ServoyException, RemoteException {
            // don't know the
            return dataSetMap.values().iterator().next();
        // datasource,
        // just return
        // the first
        // dataset
        }

        @Override
        public IDataSet performQuery(String client_id, String server_name, String transaction_id, ISQLSelect sqlSelect, ColumnType[] resultTypes, ArrayList<TableFilter> filters, boolean distinctInMemory, int startRow, int rowsToRetrieve, int type, ITrackingSQLStatement trackingInfo) throws ServoyException, RemoteException {
            return dataSetMap.get(sqlSelect.getTable().getDataSource());
        }

        @Override
        public IDataSet performQuery(String client_id, String server_name, String transaction_id, ISQLSelect sqlSelect, ColumnType[] resultTypes, ArrayList<TableFilter> filters, boolean distinctInMemory, int startRow, int rowsToRetrieve, int type) throws ServoyException, RemoteException {
            IDataSet set = dataSetMap.get(sqlSelect.getTable().getDataSource());
            if (sqlSelect instanceof QuerySelect && ((QuerySelect) sqlSelect).getColumns().size() == 1) {
                // pk select
                int lastRow = Math.min(set.getRowCount(), startRow + rowsToRetrieve);
                BufferedDataSet ds = BufferedDataSetInternal.createBufferedDataSet(null, null, new SafeArrayList<Object[]>(0), lastRow < set.getRowCount());
                for (int i = startRow; i < lastRow; i++) {
                    ds.addRow(new Object[] { set.getRow(i)[0] });
                }
                return ds;
            }
            return set;
        }

        @Override
        public IDataSet performQuery(String client_id, String server_name, String driverTableName, String transaction_id, String sql, Object[] questiondata, int startRow, int rowsToRetrieve) throws ServoyException, RemoteException {
            // don't know the
            return dataSetMap.values().iterator().next();
        // datasource,
        // just return
        // the first
        // dataset
        }

        @Override
        public IDataSet performQuery(String client_id, String server_name, String transaction_id, ISQLSelect sqlSelect, ColumnType[] resultTypes, ArrayList<TableFilter> filters, boolean distinctInMemory, int startRow, int rowsToRetrieve) throws ServoyException, RemoteException {
            return dataSetMap.get(sqlSelect.getTable().getDataSource());
        }

        @Override
        public IDataSet performCustomQuery(String client_id, String server_name, String driverTableName, String transaction_id, ISQLSelect sqlSelect, ArrayList<TableFilter> filters, int startRow, int rowsToRetrieve) throws ServoyException, RemoteException {
            return dataSetMap.get(sqlSelect.getTable().getDataSource());
        }

        @Override
        public boolean notifyDataChange(String client_id, String server_name, String tableName, IDataSet pks, int action, String transaction_id) throws RemoteException {
            return false;
        }

        @Override
        public ITable insertQueryResult(String client_id, String queryServerName, String queryTid, ISQLSelect sqlSelect, ArrayList<TableFilter> filters, boolean distinctInMemory, int startRow, int rowsToRetrieve, int type, String dataSource, String targetServerName, String targetTableName, String targetTid, ColumnType[] columnTypes, String[] pkNames) throws ServoyException, RemoteException {
            return null;
        }

        @Override
        public InsertResult insertDataSet(String client_id, IDataSet set, final String dataSource, String serverName, String tableName, String tid, ColumnType[] columnTypes, String[] pkNames, HashMap<String, ColumnInfoDef> columnInfoDefinitions) throws ServoyException, RemoteException {
            dataSetMap.put(dataSource, set);
            Table table = new Table(serverName, serverName, true, ITable.TABLE, null, null);
            table.setDataSource(dataSource);
            for (int i = 0; i < set.getColumnCount(); i++) {
                Column col = new Column(table, set.getColumnNames()[i], set.getColumnTypes()[i], 50, 50, true);
                table.addColumn(col);
                if (Arrays.binarySearch(pkNames, col.getName()) >= 0) {
                    col.setDatabasePK(true);
                }
            }
            return new InsertResult(table, new Object[0]);
        }

        @Override
        public QuerySet getSQLQuerySet(String serverName, ISQLQuery sqlQuery, ArrayList<TableFilter> filters, int startRow, int rowsToRetrieve, boolean forceQualifyColumns, boolean disableUseArrayForIn) throws RepositoryException, RemoteException {
            QuerySet qs = new QuerySet();
            qs.setSelect(new QueryString("select from test", false));
            return qs;
        }

        @Override
        public Object getNextSequence(String serverName, String tableName, String columnName, int columnInfoID, String columnInfoServer) throws RepositoryException, RemoteException {
            return null;
        }

        @Override
        public Blob getBlob(String clientId, String serverName, ISQLSelect blobSelect, ArrayList<TableFilter> filters, String tid) throws RepositoryException, RemoteException {
            return null;
        }

        @Override
        public boolean endTransactions(String client_id, String[] transaction_id, boolean commit) throws RepositoryException, RemoteException {
            return false;
        }

        @Override
        public void dropTemporaryTable(String client_id, String serverName, String tableName) throws RemoteException, RepositoryException {
        }

        @Override
        public ISQLStatement createSQLStatement(int action, String server_name, String tableName, Object[] pkColumnData, String tid, ISQLUpdate sqlUpdate, ArrayList<TableFilter> filters) throws RemoteException {
            return null;
        }

        @Override
        public ISQLStatement createSQLStatement(int action, String server_name, String tableName, Object[] pkColumnData, String tid, String sql, Object[] questiondata) throws RemoteException, RepositoryException {
            return null;
        }

        @Override
        public void addClientAsTableUser(String client_id, String serverName, String tableName) throws RemoteException, RepositoryException {
        }

        @Override
        public IDataSet[] executeProcedure(String clientId, String server_name, String tid, Procedure procedure, Object[] arguments) throws RepositoryException, RemoteException {
            return null;
        }
    };
}
Also used : Set(java.util.Set) QuerySet(com.servoy.j2db.persistence.QuerySet) IDataSet(com.servoy.j2db.dataprocessing.IDataSet) BufferedDataSet(com.servoy.j2db.dataprocessing.BufferedDataSet) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) SafeArrayList(com.servoy.j2db.util.SafeArrayList) QuerySet(com.servoy.j2db.persistence.QuerySet) QueryString(com.servoy.j2db.persistence.QueryString) SetCondition(com.servoy.j2db.query.SetCondition) BufferedDataSet(com.servoy.j2db.dataprocessing.BufferedDataSet) Column(com.servoy.j2db.persistence.Column) Procedure(com.servoy.j2db.persistence.Procedure) ITable(com.servoy.j2db.persistence.ITable) Table(com.servoy.j2db.persistence.Table) IDataServer(com.servoy.j2db.dataprocessing.IDataServer) QueryString(com.servoy.j2db.persistence.QueryString) QuerySelect(com.servoy.j2db.query.QuerySelect) ISQLUpdate(com.servoy.j2db.query.ISQLUpdate) ITrackingSQLStatement(com.servoy.j2db.dataprocessing.ITrackingSQLStatement) ISQLQuery(com.servoy.j2db.query.ISQLQuery) IDataSet(com.servoy.j2db.dataprocessing.IDataSet) ISQLSelect(com.servoy.j2db.query.ISQLSelect)

Example 10 with Table

use of com.servoy.j2db.persistence.Table in project servoy-client by Servoy.

the class FoundSet method alldataproviders.

/**
 * Get all dataproviders of the foundset.
 *
 * @sample
 * var dataprovidersNames = %%prefix%%alldataproviders;
 * application.output("This foundset has " + dataprovidersNames.length + " data providers.")
 * for (var i=0; i<dataprovidersNames.length; i++)
 * 	application.output(dataprovidersNames[i]);
 *
 * @special
 */
@JSReadonlyProperty
public String[] alldataproviders() {
    List<String> al = new ArrayList<String>();
    Table table = (Table) getTable();
    if (table != null) {
        try {
            Iterator<Column> columnsIt = table.getColumnsSortedByName();
            while (columnsIt.hasNext()) {
                IColumn c = columnsIt.next();
                al.add(c.getDataProviderID());
            }
            Iterator<AggregateVariable> aggIt = fsm.getApplication().getFlattenedSolution().getAggregateVariables(table, true);
            while (aggIt.hasNext()) {
                AggregateVariable av = aggIt.next();
                al.add(av.getDataProviderID());
            }
            Iterator<ScriptCalculation> scriptIt = fsm.getApplication().getFlattenedSolution().getScriptCalculations(table, true);
            while (scriptIt.hasNext()) {
                ScriptCalculation sc = scriptIt.next();
                if (al.contains(sc.getDataProviderID()))
                    al.remove(sc.getDataProviderID());
                al.add(sc.getDataProviderID());
            }
        } catch (Exception ex) {
            Debug.error(ex);
        }
    }
    return al.toArray(new String[al.size()]);
}
Also used : ScriptCalculation(com.servoy.j2db.persistence.ScriptCalculation) BaseQueryTable(com.servoy.base.query.BaseQueryTable) Table(com.servoy.j2db.persistence.Table) QueryTable(com.servoy.j2db.query.QueryTable) ITable(com.servoy.j2db.persistence.ITable) QueryColumn(com.servoy.j2db.query.QueryColumn) Column(com.servoy.j2db.persistence.Column) IColumn(com.servoy.j2db.persistence.IColumn) IColumn(com.servoy.j2db.persistence.IColumn) ArrayList(java.util.ArrayList) SafeArrayList(com.servoy.j2db.util.SafeArrayList) AggregateVariable(com.servoy.j2db.persistence.AggregateVariable) ServoyException(com.servoy.j2db.util.ServoyException) ApplicationException(com.servoy.j2db.ApplicationException) RemoteException(java.rmi.RemoteException) RepositoryException(com.servoy.j2db.persistence.RepositoryException) JSReadonlyProperty(com.servoy.j2db.scripting.annotations.JSReadonlyProperty)

Aggregations

Table (com.servoy.j2db.persistence.Table)43 ITable (com.servoy.j2db.persistence.ITable)27 QueryTable (com.servoy.j2db.query.QueryTable)26 RepositoryException (com.servoy.j2db.persistence.RepositoryException)23 BaseQueryTable (com.servoy.base.query.BaseQueryTable)22 Column (com.servoy.j2db.persistence.Column)21 ServoyException (com.servoy.j2db.util.ServoyException)17 QueryColumn (com.servoy.j2db.query.QueryColumn)16 QuerySelect (com.servoy.j2db.query.QuerySelect)16 ArrayList (java.util.ArrayList)16 RemoteException (java.rmi.RemoteException)14 ApplicationException (com.servoy.j2db.ApplicationException)13 IColumn (com.servoy.j2db.persistence.IColumn)10 IBaseColumn (com.servoy.base.persistence.IBaseColumn)9 IServer (com.servoy.j2db.persistence.IServer)7 Relation (com.servoy.j2db.persistence.Relation)7 HashMap (java.util.HashMap)7 SortColumn (com.servoy.j2db.dataprocessing.SortColumn)6 SafeArrayList (com.servoy.j2db.util.SafeArrayList)6 ColumnInfo (com.servoy.j2db.persistence.ColumnInfo)5