Skip to content

Spm typed members #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 6 additions & 16 deletions SPManager/src/artofillusion/spmanager/InstallSplitPane.java
Original file line number Diff line number Diff line change
Expand Up @@ -197,15 +197,13 @@ private void getStartupScripts()
*/
private void getFiles( TreePath addTo, List<SPMObjectInfo> infos, List<SPMObjectInfo> managerInfoList )
{
DefaultMutableTreeNode tn;
SPMObjectInfo info;

SPMObjectInfo managerInfo;
boolean eligible;
TreeMap<String, SPMObjectInfo> map = new TreeMap<>();

for ( int i = 0; i < infos.size(); i++ )
for (SPMObjectInfo info: infos )
{
info = (SPMObjectInfo) infos.elementAt( i );

if (info.restriction >= SPMParameters.HIDE) continue;

Expand Down Expand Up @@ -262,18 +260,10 @@ else if ( info.getMinor() == managerInfo.getMinor() )
}
}
}
Collection col = map.values();
if ( ! col.isEmpty() )
{
for( Iterator iter = col.iterator(); iter.hasNext(); )
{
info = (SPMObjectInfo) iter.next();
tn = new DefaultMutableTreeNode( info.getName() );
tn.setAllowsChildren( false );
tn.setUserObject( info );
tree.addNode( addTo, tn );
}
}
map.values().forEach(info -> {
tree.addNode(addTo, new DefaultMutableTreeNode(info, false));
});

}


Expand Down
15 changes: 8 additions & 7 deletions SPManager/src/artofillusion/spmanager/LocalSPMFileSystem.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,20 +52,21 @@ private void scanStartupScripts()
scanFiles(SPManagerPlugin.STARTUP_SCRIPT_DIRECTORY, startupInfo, ".bsh");
}

private void scanFiles(String directory, Vector infoVector, String suffix)
private void scanFiles(String directory, List<SPMObjectInfo> infoVector, String suffix)
{
SPMObjectInfo info;

File dir = new File(directory);
if (dir.exists())
{
String[] files = dir.list();
if (files.length > 0) Arrays.sort(files);
for (int i = 0; i < files.length; i++)
if (files[i].endsWith(suffix))
{ info = new SPMObjectInfo(directory+File.separatorChar+files[i]);
infoVector.add(info);
}
for (String file : files)
{
if (file.endsWith(suffix))
{
infoVector.add(new SPMObjectInfo(directory + File.separatorChar + file));
}
}
}
}

Expand Down
48 changes: 17 additions & 31 deletions SPManager/src/artofillusion/spmanager/ManageSplitPane.java
Original file line number Diff line number Diff line change
Expand Up @@ -108,39 +108,25 @@ private void getStartupScripts()
*/
private void getFiles( TreePath addTo, List<SPMObjectInfo> infos )
{
DefaultMutableTreeNode tn;
SPMObjectInfo info;

for ( int i = 0; i < infos.size(); i++ )
{
info = (SPMObjectInfo) infos.elementAt( i );
tn = new DefaultMutableTreeNode( info.getName() );
tn.setAllowsChildren( false );
tn.setUserObject( info );
tree.addNode( addTo, tn );
}
infos.forEach(info -> {
tree.addNode(addTo, new DefaultMutableTreeNode(info, false));
});

// NTJ: set reference counts
for (int i = 0; i < infos.size(); i++) {
info = (SPMObjectInfo) infos.elementAt( i );

Collection externals = info.getExternals();
String extName, extType;
SPMObjectInfo ext;
if (externals != null) {
for (Iterator iter = externals.iterator(); iter.hasNext(); ) {
extName = (String) iter.next();

if (extName.endsWith("= required")) {
extType = extName.substring(extName.indexOf(':')+1,
extName.indexOf('=')).trim();
extName = extName.substring(0, extName.indexOf(':'));

ext = getInfo(extName, (TreePath)pathMap.get(extType));
if (ext != null) ext.refcount++;
}
}
}
for (SPMObjectInfo info: infos) {
Collection<String> externals = info.getExternals();
if(externals == null) continue;

externals.forEach((String item) -> {
String extName = item;
if (extName.endsWith("= required"))
{
String extType = extName.substring(extName.indexOf(':') + 1, extName.indexOf('=')).trim();
extName = extName.substring(0, extName.indexOf(':'));
SPMObjectInfo ext = getInfo(extName, (TreePath) pathMap.get(extType));
if (ext != null) ext.refcount++;
}
});
}
}

Expand Down
34 changes: 11 additions & 23 deletions SPManager/src/artofillusion/spmanager/SPManagerFrame.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import java.awt.event.ActionEvent;
import buoy.widget.*;
import buoy.event.*;
import java.util.function.Predicate;

/**
* Main frame of the scripts and plugins manager.
Expand Down Expand Up @@ -141,17 +142,13 @@ public void actionPerformed( ActionEvent e )
*/
public void printBounds( WidgetContainer wc )
{
java.util.Iterator childEnum = wc.getChildren().iterator();
while ( childEnum.hasNext() )
{
Widget w = (Widget) childEnum.next();
System.out.println( "Widget: " + w );
System.out.println( "Bounds: " + w.getBounds() );
System.out.println( "Min size: " + w.getMinimumSize() );
System.out.println( "Pref size: " + w.getPreferredSize() );
if ( w instanceof WidgetContainer )
printBounds( (WidgetContainer) w );
}
wc.getChildren().forEach(w ->{
System.out.println("Widget: " + w);
System.out.println("Bounds: " + w.getBounds());
System.out.println("Min size: " + w.getMinimumSize());
System.out.println("Pref size: " + w.getPreferredSize());
if(w instanceof WidgetContainer) printBounds((WidgetContainer)w);
});
}


Expand Down Expand Up @@ -192,19 +189,10 @@ private void doTabbedPaneSelection()
*/
protected void checkForUpdatedMe()
{
Vector localList = manageSplitPane.getFileSystem().getPlugins();
Vector remoteList = updateSplitPane.getFileSystem().getPlugins();
SPMObjectInfo localinfo=null, remoteinfo=null;

for (int i = 0; i < localList.size(); i++) {
localinfo= (SPMObjectInfo) localList.get(i);
if ("SPManager".equals(localinfo.getName())) break;
}

for (int i = 0; i < remoteList.size(); i++) {
remoteinfo = (SPMObjectInfo) remoteList.get(i);
if ("SPManager".equals(remoteinfo.getName())) break;
}
Predicate<SPMObjectInfo> self = (SPMObjectInfo t) -> t.getName().equals("SPManager");
SPMObjectInfo localinfo = manageSplitPane.getFileSystem().getPlugins().stream().filter(self).findFirst().orElse(null);
SPMObjectInfo remoteinfo = updateSplitPane.getFileSystem().getPlugins().stream().filter(self).findFirst().orElse(null);
Comment on lines +193 to +194
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These lines are far too long. They should be wrapped. Probably align the .stream() with .getPlugins()


boolean update = true;

Expand Down
8 changes: 3 additions & 5 deletions SPManager/src/artofillusion/spmanager/SPManagerPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -156,11 +156,9 @@ public void processMessage( int message, Object args[] )
}

// ok, now perform the actions
for (Iterator iter = info.actions.entrySet().iterator();
iter.hasNext(); ) {

entry = (Map.Entry) iter.next();
key = entry.getKey().toString().split(":");
for (Map.Entry<String, String> entry: info.actions.entrySet()) {
String value = entry.getValue();
String key[] = entry.getKey().split(":");

try {
if (key[0].startsWith("/"))
Expand Down