/*
* This file is part of the OpenSCADA project
* Copyright (C) 2006-2010 TH4 SYSTEMS GmbH (http://th4-systems.com)
*
* OpenSCADA is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenSCADA is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenSCADA. If not, see
* <http://opensource.org/licenses/lgpl-3.0.html> for a copy of the LGPLv3 License.
*/
package org.openscada.ae.ui.testing.navigator;
import org.eclipse.core.databinding.observable.Observables;
import org.eclipse.core.databinding.observable.set.IObservableSet;
import org.eclipse.core.databinding.observable.set.WritableSet;
import org.openscada.ae.Query;
public class QueryListWrapper
{
private final WritableSet queries = new WritableSet ();
private final ConnectionWrapper connectionWrapper;
public QueryListWrapper ( final ConnectionWrapper connectionWrapper )
{
this.connectionWrapper = connectionWrapper;
}
public void createQuery ( final String filterType, final String filterData )
{
final QueryBean query = new QueryBean ( this, filterType, filterData );
final Query queryHandler = this.connectionWrapper.getService ().getConnection ().createQuery ( filterType, filterData, query );
if ( queryHandler != null )
{
query.setController ( queryHandler );
this.queries.add ( query );
}
}
public IObservableSet getObservableQueries ()
{
return Observables.proxyObservableSet ( this.queries );
}
public void remove ( final QueryBean queryBean )
{
this.queries.remove ( queryBean );
}
public void dispose ()
{
for ( final Object o : this.queries )
{
( (QueryBean)o ).dispose ();
}
}
}