📄 uddiexplorerform.cs
字号:
catch( TypeInitializationException e)
{
MessageBox.Show(e.Message.ToString() ) ;
}
catch (Exception e )
{
MessageBox.Show(e.Message.ToString() ) ;
}
finally
{
SetText set=new SetText (ChangeStatus);
searchButton.Invoke(set, "&Search");
if (this.Cursor == Cursors.WaitCursor )
{
this.Cursor = Cursors.Default ;
}
}
}
delegate void SetText(string Text);
private void ChangeStatus(string Text)
{
searchButton.Text = Text;
label3.Text = "Search finished ";
tvwSearchResults.Enabled = true;
Add_uddiServerURL();
if (tvwSearchResults.Nodes.Count > 1)
btnPostFilter.Enabled = true;
}
private void Perform_Search()
{
if (searchButton.Text.Trim () == "&Search")
{
btnPostFilter.Enabled = false;
_uddiServerURL=cboInquireUrl.Text.Trim() ;
MatchCollection mc=regexURL.Matches(_uddiServerURL);
if (mc.Count <= 0)
{
MessageBox.Show ("The entered URL is invalid.","UDDI Explorer", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
};
tvwSearchResults.Nodes.Clear();
tvwSearchResults.Enabled = false;
_threadStart=new ThreadStart(UDDISearch);
_thread=new Thread(_threadStart);
searchButton.Text="&Stop";
label3.Text="Searching...";
tvwSearchResults.Focus();
_thread.Start();
}
else
{
//lock(this)
{
searchButton.Text="&Search";
name.Focus() ;
tvwSearchResults.Enabled=true;
label3.Text="Stopping...";
this.Cursor=Cursors.WaitCursor;
if (_thread != null)
if (_thread.IsAlive)
_thread.Abort();
// Wait for the _thread to quite terminate
//_thread.Join ();
label3.Text="Search result";
this.Cursor=Cursors.Default ;
_thread=null;
_threadStart=null;
};
};
tvwSearchResults.SelectedNode=null;
}
private void name_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter )
{
Perform_Search();
};
}
private void searchButton_Click(object sender, System.EventArgs e)
{
Perform_Search();
}
private void tvwSearchResults_Click(object sender, System.EventArgs e)
{
}
private void btnAddSelect_Click(object sender, System.EventArgs e)
{
SelectedServiceList=new UDDIServiceList ();
SelectedServiceList.Clear ();
foreach (TreeNode n in tvwSearchResults.Nodes )
{
if (n.Tag is UDDIService && n.Checked == true )
{
SelectedServiceList.Add ((UDDIService)n.Tag);
};
};
Save_Settings ();
if (SelectedServiceList.Count == 0 )
{
}
else this.Close ();
}
private void btnCancel_Click(object sender, System.EventArgs e)
{
//lock(this)
{
if (_thread != null)
{
this.Cursor= Cursors.WaitCursor;
if (_thread.IsAlive)
_thread.Abort ();
// Wait for the _thread to quite terminate
_thread.Join ();
this.Cursor= Cursors.Default ;
};
}
this.Close() ;
}
private void tvwSearchResults_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
TreeNode tn=this.tvwSearchResults.GetNodeAt(e.X, e.Y);
if (tn != null && (tn.Parent != null || !(tn.Tag is UDDIService)))
if (tn.Checked) tn.Checked=false;
//just count those at first node level
foreach (TreeNode node in tvwSearchResults.Nodes )
{
if ( node.Checked )
{
btnAddSelect.Enabled=true;
return;
}
}
btnAddSelect.Enabled=false;
}
private void Add_uddiServerURL()
{
MatchCollection mc=regexURL.Matches(_uddiServerURL);
// check if this is valid url
if (mc.Count >0 && cboInquireUrl.Text.IndexOf (",") == -1 )
{
bool ok=true;
for (int i=0; i < cboInquireUrl.Items.Count ; i++ )
{
if (cboInquireUrl.Items[i].ToString().Trim() == _uddiServerURL )
{
ok=false;
break;
};
};
if ( ok )
{
cboInquireUrl.Items.Insert(0 ,cboInquireUrl.Text.Trim() );
cboInquireUrl.SelectedIndex=0;
};
Save_Settings ();
};
}
private void UDDIExplorerForm_Load(object sender, System.EventArgs e)
{
}
private void UDDIExplorerForm_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape )
{
if (_thread != null)
{
this.Cursor=Cursors.WaitCursor;
_thread.Abort ();
// Wait for the _thread to completely terminate
_thread.Join ();
this.Cursor= Cursors.Default ;
};
this.Close() ;
};
}
private void View_WSDLDetail()
{
if (tvwSearchResults.SelectedNode == null) return;
TreeNode tnUddi= tvwSearchResults.SelectedNode.Parent ;
if (tnUddi != null && tnUddi.Tag is UDDIService )
{
try
{
this.Cursor= Cursors.WaitCursor;
tvwSearchResults.BeginUpdate() ;
UDDIService s =(UDDIService)tnUddi.Tag;
s.LocationFile=s.Name + ".wsdl";
TreeNode node=WSDLRetrieval.WSDLToNode(s, true);
if (node != null)
{
node.Text=node.Text;
tvwSearchResults.SelectedNode.Nodes.Add(node);
}
else
{
tvwSearchResults.SelectedNode.Nodes.Add(new TreeNode("Can not get the wsdl from its url"));
tnUddi.Tag=null;
}
tvwSearchResults.SelectedNode.Expand() ;
tvwSearchResults.EndUpdate() ;
this.Cursor=Cursors.Default ;
}
finally
{
tvwSearchResults.EndUpdate() ;
if (this.Cursor == Cursors.WaitCursor )
{
this.Cursor = Cursors.Default ;
}
}
};
}
private void tvwSearchResults_DoubleClick(object sender, System.EventArgs e)
{
if (tvwSearchResults.SelectedNode != null && tvwSearchResults.SelectedNode.Text.Equals( "WSDL Description" )
&& tvwSearchResults.SelectedNode.GetNodeCount(false) == 0
)
{
View_WSDLDetail ();
}
}
private void name_TextChanged(object sender, System.EventArgs e)
{
}
private string oldVariableCaption = string.Empty;
private void tvwSearchResults_MouseMove(object sender, MouseEventArgs e)
{
TreeNode tn = this.tvwSearchResults.GetNodeAt(e.X, e.Y);
if (tn == null) return;
string description = string.Empty;
if (tn != null)
{
if (tn.Tag is string)
{
description= (string)tn.Tag;
}
else
if (tn.Tag is SchemaParser.NodeData)
{
SchemaParser.NodeData data = tn.Tag as SchemaParser.NodeData;
description = data.baseObj.ToString() + "\n";
description += data.Namespace + "\n";
description += "DataTypeName: " + data.Type + "\n";
}
}
if (WSDLParser.SchemaHelper.IsNotEmpty(description))
{
if (oldVariableCaption != tn.Text)
{
oldVariableCaption = tn.Text;
if (this.toolTip1 != null && this.toolTip1.Active)
this.toolTip1.Active = false;
this.toolTip1.SetToolTip(this.tvwSearchResults, description);
this.toolTip1.Active = true;
}
}
else
if (this.toolTip1 != null && this.toolTip1.Active)
this.toolTip1.Active = false;
}
private void tvwSearchResults_MouseDown(object sender, MouseEventArgs e)
{
TreeNode tn = this.tvwSearchResults.GetNodeAt(e.X, e.Y);
if (tn != null)
{
_copyText = tn.Text;
}
else
if (tvwSearchResults.SelectedNode != null)
_copyText = tvwSearchResults.SelectedNode.Text;
}
private void btnHelp_Click(object sender, EventArgs e)
{
HelpForm help = new HelpForm();
help.Show();
}
private void btnPostFilter_Click(object sender, EventArgs e)
{
ResultFilter filter = new ResultFilter();
TreeNode[] newOrder = filter.Rank (tvwSearchResults.Nodes, name.Text);
tvwSearchResults.Nodes.Clear();
tvwSearchResults.Nodes.AddRange(newOrder);
int aaa = 0;
}
private void contextMenuStrip1_Opening(object sender, System.ComponentModel.CancelEventArgs e)
{
}
#region CopyURLToClipboard
//Thanks Daryl
Thread th;
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
try
{
if (th != null)
if (th.IsAlive)
th.Abort();
th=new Thread(new ThreadStart(CopySTA));
th.ApartmentState = ApartmentState.STA;
th.Start();
}
catch (Exception ex)
{
int aaaa = 0;
}
}
[STAThread]
private void CopySTA()
{
Clipboard.SetDataObject(_copyText);
th.Join();
//Thread.CurrentThread.Join();
}
string _copyText = string.Empty;
private void tvwSearchResults_AfterSelect(object sender, TreeViewEventArgs e)
{
if (tvwSearchResults.SelectedNode != null)
_copyText = tvwSearchResults.SelectedNode.Text;
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -