Search in sources :

Example 6 with GraphDatabase

use of org.neo4j.android.client.GraphDatabase in project neo4j-mobile-android by neo4j-contrib.

the class RelationshipPropertiesActivity method confirmDeletionOfProperty.

private void confirmDeletionOfProperty(final String key, final Object value) {
    AlertDialog dialog = new AlertDialog.Builder(this).create();
    dialog.setTitle(R.string.property_delete_title);
    Formatter formatter = new Formatter();
    formatter.format(getResources().getString(R.string.property_delete_from_relationship_question), key, value, relationshipId);
    dialog.setMessage(formatter.toString());
    dialog.setButton(getResources().getString(android.R.string.ok), new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            try {
                GraphDatabase database = dbManager.getCurrentNeo4jDatabase();
                database.beginTx();
                try {
                    ParcelableRelationship relationship = database.getRelationshipById(relationshipId);
                    relationship.removeProperty(key);
                    database.updateRelationship(relationship);
                    database.txSuccess();
                } finally {
                    database.txFinish();
                }
            } catch (Exception e) {
                Ln.e(e, "failed to delete property with key '" + key + "' and value '" + value + "' from relationship with id '" + relationshipId + "'.");
                showErrorDialog();
            }
        }
    });
    dialog.setButton2(getResources().getString(android.R.string.cancel), new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.cancel();
        }
    });
    dialog.show();
    formatter.close();
}
Also used : AlertDialog(android.app.AlertDialog) DialogInterface(android.content.DialogInterface) GraphDatabase(org.neo4j.android.client.GraphDatabase) Formatter(java.util.Formatter) ParcelableRelationship(org.neo4j.android.common.ParcelableRelationship)

Example 7 with GraphDatabase

use of org.neo4j.android.client.GraphDatabase in project neo4j-mobile-android by neo4j-contrib.

the class RelationshipActivity method updateRelationshipsList.

private void updateRelationshipsList() {
    try {
        relationshipsLayout.removeAllViews();
        GraphDatabase database = dbManager.getCurrentNeo4jDatabase();
        database.beginTx();
        try {
            ParcelableNode centerNode = database.getNodeById(centerNodeId);
            List<ParcelableRelationship> relationshipsFromCenterNode = new ArrayList<ParcelableRelationship>();
            List<ParcelableRelationship> relationshipsToCenterNode = new ArrayList<ParcelableRelationship>();
            for (ParcelableRelationship relationship : centerNode.getRelationships()) {
                if ((centerNodeId == relationship.getStartNodeId()) && (peerNodeId == relationship.getEndNodeId())) {
                    relationshipsFromCenterNode.add(relationship);
                }
                if ((centerNodeId != peerNodeId) && (peerNodeId == relationship.getStartNodeId()) && (centerNodeId == relationship.getEndNodeId())) {
                    relationshipsToCenterNode.add(relationship);
                }
            }
            Button nodeCenterButton = (Button) findViewById(R.id.nodeCenterButton);
            nodeCenterButton.setText("" + centerNodeId);
            nodeCenterButton.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    showNodePropertyActivity(centerNodeId);
                }
            });
            Button nodePeerButton = (Button) findViewById(R.id.nodePeerButton);
            if (centerNodeId == peerNodeId) {
                nodePeerButton.setVisibility(View.INVISIBLE);
            } else {
                nodePeerButton.setText("" + peerNodeId);
                nodePeerButton.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        showNodePropertyActivity(peerNodeId);
                    }
                });
            }
            for (ParcelableRelationship relationship : relationshipsFromCenterNode) {
                addRelationshipsListItem(relationship, true);
            }
            for (ParcelableRelationship relationship : relationshipsToCenterNode) {
                addRelationshipsListItem(relationship, false);
            }
        } finally {
            database.txFinish();
        }
    } catch (Exception e) {
        Ln.e(e, "database exception");
        showErrorDialog();
    }
}
Also used : GraphDatabase(org.neo4j.android.client.GraphDatabase) ImageButton(android.widget.ImageButton) Button(android.widget.Button) ArrayList(java.util.ArrayList) ParcelableRelationship(org.neo4j.android.common.ParcelableRelationship) ParcelableNode(org.neo4j.android.common.ParcelableNode) ContentView(roboguice.inject.ContentView) View(android.view.View) InjectView(roboguice.inject.InjectView) TextView(android.widget.TextView) Neo4jServiceException(org.neo4j.android.client.Neo4jServiceException) RemoteException(android.os.RemoteException)

Example 8 with GraphDatabase

use of org.neo4j.android.client.GraphDatabase in project neo4j-mobile-android by neo4j-contrib.

the class NodeActivity method createNode.

private void createNode(boolean createDefaultRelationship) throws RemoteException, Neo4jServiceException {
    GraphDatabase database = dbManager.getCurrentNeo4jDatabase();
    database.beginTx();
    try {
        ParcelableNode node = new ParcelableNode();
        long nodeId = database.createNode(node);
        Ln.i("created node '" + node + "' with id '" + nodeId + "'");
        if (createDefaultRelationship) {
            ParcelableRelationship relationship = new ParcelableRelationship();
            relationship.setStartNodeId(centerNodeId);
            relationship.setEndNodeId(nodeId);
            relationship.setName(defaultRelationshipName);
            long relationshipId = database.createRelationship(relationship);
            Ln.i("created relationship '" + relationship + "' with id '" + relationshipId + "'");
        }
        database.txSuccess();
    } finally {
        database.txFinish();
    }
}
Also used : GraphDatabase(org.neo4j.android.client.GraphDatabase) ParcelableRelationship(org.neo4j.android.common.ParcelableRelationship) ParcelableNode(org.neo4j.android.common.ParcelableNode)

Example 9 with GraphDatabase

use of org.neo4j.android.client.GraphDatabase in project neo4j-mobile-android by neo4j-contrib.

the class RelationshipActivity method createRelationship.

private void createRelationship(String name, long endNodeId) throws RemoteException, Neo4jServiceException {
    GraphDatabase database = dbManager.getCurrentNeo4jDatabase();
    database.beginTx();
    try {
        ParcelableRelationship relationship = new ParcelableRelationship();
        relationship.setStartNodeId(centerNodeId);
        relationship.setEndNodeId(endNodeId);
        relationship.setName(name);
        long relationshipId = database.createRelationship(relationship);
        database.txSuccess();
        Ln.i("created relationship '" + relationship + "' with id '" + relationshipId + "'");
    } finally {
        database.txFinish();
    }
}
Also used : GraphDatabase(org.neo4j.android.client.GraphDatabase) ParcelableRelationship(org.neo4j.android.common.ParcelableRelationship)

Example 10 with GraphDatabase

use of org.neo4j.android.client.GraphDatabase in project neo4j-mobile-android by neo4j-contrib.

the class RelationshipActivity method getAllNodeIds.

private List<Long> getAllNodeIds() throws RemoteException, Neo4jServiceException {
    GraphDatabase database = dbManager.getCurrentNeo4jDatabase();
    database.beginTx();
    try {
        NodeIterator iterator = database.getAllNodes();
        List<Long> nodeIds = new ArrayList<Long>();
        while (iterator.hasNext()) {
            ParcelableNode node = iterator.next();
            nodeIds.add(node.getId());
        }
        return nodeIds;
    } finally {
        database.txFinish();
    }
}
Also used : NodeIterator(org.neo4j.android.client.NodeIterator) GraphDatabase(org.neo4j.android.client.GraphDatabase) ArrayList(java.util.ArrayList) ParcelableNode(org.neo4j.android.common.ParcelableNode)

Aggregations

GraphDatabase (org.neo4j.android.client.GraphDatabase)18 ParcelableNode (org.neo4j.android.common.ParcelableNode)12 ParcelableRelationship (org.neo4j.android.common.ParcelableRelationship)11 AlertDialog (android.app.AlertDialog)6 DialogInterface (android.content.DialogInterface)6 RemoteException (android.os.RemoteException)4 View (android.view.View)4 Formatter (java.util.Formatter)4 Neo4jServiceException (org.neo4j.android.client.Neo4jServiceException)4 ContentView (roboguice.inject.ContentView)4 InjectView (roboguice.inject.InjectView)4 TextView (android.widget.TextView)3 ArrayList (java.util.ArrayList)3 Intent (android.content.Intent)2 EditText (android.widget.EditText)2 NodeIterator (org.neo4j.android.client.NodeIterator)2 Button (android.widget.Button)1 ImageButton (android.widget.ImageButton)1 List (java.util.List)1 TreeSet (java.util.TreeSet)1