Skip to content

Open existing view in the same dataTree

/*
* Open existing view in the same dataTree based on its name
*
* @author David Pech <dpech@chemaxon.com>
*/

import com.im.df.api.dml.*
import com.im.df.api.dll.*
import com.im.df.api.support.SelectionDescription
import com.im.ijc.core.api.util.IJCCoreUtils
import com.im.ijc.core.api.views.AbstractViewTopComponent

// this is a skeleton of a button script

// init is called when the button is initialized
//
// widget is IJCWidget instance
init = { widget ->
}

// destroy is called when the button is disposed to do clean-up if necessary
//
// widget is IJCWidget instance
destroy = { widget ->
}

// evaluate is called when the button is clicked to perform action
//
// widget is IJCWidget instance
evaluate = { widget ->

    def rs = widget.form.resultSet
    def dataTree = rs.dataTree

    def views = dataTree.getViews().getItems()
 // define the view name you want to open
    def viewToOpen = "yourViewName"

    for (view in views) {
        // if a view of a given name is found
        if (view.getName().toLowerCase().contains(viewToOpen.toLowerCase())) {
            // open the view
            AbstractViewTopComponent.getViewRegistry().open(view);
            break;
        }
    }

}

// on_change is called when some vertex state is changed to make it possible to update button state
//
// widget is IJCWidget instance
// button JButton object used in browse mode
on_change = { widget, button ->

}