public void populateChildren() { if ( kidDirectoryCache == null || !populated ) { kidDirectoryCache = new UIRepositoryDirectories(); } for ( RepositoryDirectoryInterface child : rd.getChildren() ) { try { kidDirectoryCache.add( UIObjectRegistry.getInstance().constructUIRepositoryDirectory( child, this, rep ) ); } catch ( UIObjectCreationException e ) { kidDirectoryCache.add( new UIRepositoryDirectory( child, this, rep ) ); } } populated = true; }
private boolean contains( UIRepositoryDirectories directories, UIRepositoryDirectory searchDir ) { for ( int i = 0; i < directories.size(); i++ ) { UIRepositoryObject dir = directories.get( i ); if ( dir instanceof UIRepositoryDirectory ) { if ( dir.getName() != null && dir.getName().equals( searchDir.getName() ) ) { return true; } } } return false; }
@Override public Iterator<UIRepositoryObject> iterator() { return getChildren().iterator(); }
@Override public void move( UIRepositoryDirectory newParentDir ) throws Exception { if ( newParentDir != null ) { rep.renameRepositoryDirectory( obj.getObjectId(), newParentDir.getDirectory(), null ); // Try to make sure the directories are updated properly if ( !newParentDir.equals( getParent() ) ) { getParent().getChildren().remove( this ); newParentDir.getChildren().add( this ); getParent().refresh(); newParentDir.refresh(); } } }
public void delete( boolean deleteHomeDirectories ) throws Exception { if ( rep instanceof RepositoryExtended ) { ( (RepositoryExtended) rep ).deleteRepositoryDirectory( getDirectory(), deleteHomeDirectories ); } else { rep.deleteRepositoryDirectory( getDirectory() ); } if ( getParent().getChildren().contains( this ) ) { getParent().getChildren().remove( this ); } if ( getParent().getRepositoryObjects().contains( this ) ) { getParent().getRepositoryObjects().remove( this ); } getParent().refresh(); }
@Override public UIRepositoryDirectory sourceToTarget( final UIRepositoryDirectory value ) { if ( value == null || value.size() == 0 ) { return null; } if ( !value.get( value.size() - 1 ).equals( trashDir ) ) { // add directly to children collection to bypass events value.getChildren().add( trashDir ); } return value; }
public void cleanup() { if ( !populated ) { kidDirectoryCache = new UIRepositoryDirectories(); } }
public void delete() throws Exception { if ( uiParent.checkDirNameExistsInRepo( getName() ) != null ) { rep.deleteRepositoryDirectory( getDirectory() ); } uiParent.getChildren().remove( this ); if ( uiParent.getRepositoryObjects().contains( this ) ) { uiParent.getRepositoryObjects().remove( this ); } uiParent.refresh(); }
@Override public UIRepositoryObject get( int index ) { return getChildren().get( index ); }
@Override public int size() { return getChildren().size(); }
public void fireCollectionChanged() { firePropertyChange( "children", null, getChildren() ); getChildren(); // prime cache before firing event (already primed from above getChildren call but to be consistent) kidDirectoryCache.fireCollectionChanged(); try { getRepositoryObjects(); // prime cache before firing event if ( kidElementCache != null ) { kidElementCache.fireCollectionChanged(); } } catch ( KettleException ignored ) { // Ignore errors } }
public UIRepositoryDirectory createFolder( String name ) throws Exception { RepositoryDirectoryInterface thisDir = getDirectory(); RepositoryDirectoryInterface dir; //PDI-5202: the directory might exist already. If so, don't create a new one. String dirName = checkDirNameExistsInRepo( name ); if ( dirName == null ) { dir = rep.createRepositoryDirectory( thisDir, name ); } else { dir = rep.findDirectory( thisDir.getPath() + "/" + dirName ); } UIRepositoryDirectory newDir = null; try { newDir = UIObjectRegistry.getInstance().constructUIRepositoryDirectory( dir, this, rep ); } catch ( UIObjectCreationException uoe ) { newDir = new UIRepositoryDirectory( dir, this, rep ); } UIRepositoryDirectories directories = getChildren(); if ( !contains( directories, newDir ) ) { directories.add( newDir ); } else { throw new KettleException( "Unable to create folder with the same name [" + name + "]" ); } kidElementCache = null; // rebuild the element cache for correct positioning. return newDir; }
@Override public UIRepositoryDirectories getChildren() { return new UIRepositoryDirectories(); }
public UIRepositoryDirectories getChildren() { if ( kidDirectoryCache == null ) { kidDirectoryCache = new UIRepositoryDirectories(); if ( getParent() != null ) { RepositoryDirectory repositoryDirectory = new RepositoryDirectory(); repositoryDirectory.setObjectId( null ); UIRepositoryDirectory uiRepositoryDirectory = new UIRepositoryDirectory( repositoryDirectory, null, null ); kidDirectoryCache.add( uiRepositoryDirectory ); } } return kidDirectoryCache; }
public boolean contains( String dirName ) { UIRepositoryDirectories directories = getChildren(); UIRepositoryObject dir; for ( int i = 0; i < directories.size(); i++ ) { dir = directories.get( i ); if ( !( dir instanceof UIRepositoryDirectory ) ) { continue; } else if ( dir.getName() == null && dirName == null ) { return true; } else if ( dir.getName().equalsIgnoreCase( dirName ) ) { return true; } } return false; }